Tengo una matriz de números anidados y estoy tratando de convertirla en una matriz de objetos con valor x, y, z.
tengo los siguientes datos
[ [1, 2, 3], [2, 3, 4], [4, 5, 6] ]Mi salida esperada es algo como esto
[ { x: 1, y: 2, z: 3 }, { x: 2, y: 3, z: 4 }, { x: 4, y: 5, z: 6 } ]He hecho esto, pero no creo que sea una solución estándar. ¿Alguna manera mejor que alguien pueda sugerir?
data.map((point, i) => { return { x: point[0], y: point[1], z: point[2], } })No hay mejor manera en el sentido de otro enfoque (más rápido) de hacer esto. map() es lo que necesitarías.
Pero podría (posiblemente) mejorar la legibilidad/concisión del código utilizando la desestructuración de la matriz y omitiendo la declaración de retorno explícita. Tenga en cuenta que también estoy usando literales de objetos mejorados .
const input = [ [1, 2, 3], [2, 3, 4], [4, 5, 6] ] const output = input.map(([x, y, z]) => ({x, y, z})); console.log(output); .as-console-wrapper { max-height: 100% !important; top: 0; }Usando este enfoque, es muy obvio cuál sería el resultado, por lo tanto, preferiría esto, pero, nuevamente, su solución está perfectamente bien.
Esto también funcionaría. Usando la desestructuración de matrices. Esto limpia su solución un poco más.
const data = [ [1, 2, 3], [2, 3, 4], [4, 5, 6] ] const output = data.map(([x, y, z]) => ({x, y, z})) console.log(output)