Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

143
Vistas
Reconstruir una matriz de matrices y convertirla en una matriz de objetos con claves como la primera matriz y valores como el resto de los elementos de la matriz

Es probable que la pregunta en sí necesite ser editada, pero escúchame, por favor. Tengo esto:

 [ ["a","b","c"], ["apple", "orange", "banana"], ["kiwi", "tomato", "avocado"], ["beans", "asparagus", "spinach"] ]

Lo necesito para que se vea como el siguiente:

 [ {"a":"apple", "b":"orange", "c":"banana"}, {"a":"kiwi", "b":"tomato", "c":"avocado"}, {"a":"a", "b":"asparagus", "c":"spinach"} ]

He hecho algo como esto:

 const rows = [ ["a","b","c"], ["apple", "orange", "banana"], ["kiwi", "tomato", "avocado"], ["beans", "asparagus", "spinach"] ] const dataObj = {}; const dataArr = []; if (rows.length) { keys = rows[0]; values = rows[0]; rows.forEach((element, i) => { values = rows[i]; keys.forEach((key, j) => { dataObj[key] = values[j]; dataArr.push(dataObj); }); }); }

Fue en vano y obtuve algo como esto:

 [ {"a":"apple", "b":"orange", "c":"banana"}, {"a":"apple", "b":"orange", "c":"banana"}, {"a":"apple", "b":"orange", "c":"banana"} ]

Esta no es la salida deseada. Si puede ayudarme, ¡y a nuestra comunidad! - Sería estupendo. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede usar un par de funciones de matriz para lograr esto:

  • Array.shift : para seleccionar el primer elemento y eliminarlo de la matriz
  • Array.map : para transformar elementos en objetos

 const rows = [ ["a", "b", "c"], ["apple", "orange", "banana"], ["kiwi", "tomato", "avocado"], ["beans", "asparagus", "spinach"] ] const keys = rows.shift(); const map = rows.map((item) => { const obj = {} keys.forEach((key, index) => { obj[key] = item[index] }) return obj }) console.log(map)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si puede usar lodash : compruébelo en este entorno limitado

 import _ from 'lodash'; const input = [ ["a","b","c"], ["apple", "orange", "banana"], ["kiwi", "tomato", "avocado"], ["beans", "asparagus", "spinach"] ] const keys = input[0]; const values = input.splice(1); console.log(keys); console.log(values); const output = values.map(row => _.zipObject(keys, row)); console.log(output); /* [ {"a":"apple","b":"orange","c":"banana"}, {"a":"kiwi","b":"tomato","c":"avocado"}, {"a":"beans","b":"asparagus","c":"spinach"} ] */
about 4 years ago · Juan Pablo Isaza Denunciar

0

Modificó un poco su código para la solución.

 const rows = [ ["a","b","c"], ["apple", "orange", "banana"], ["kiwi", "tomato", "avocado"], ["beans", "asparagus", "spinach"] ] let dataObj = {}; const dataArr = []; if (rows.length) { keys = rows[0]; rows.forEach((row, i) => { if(i==0) return dataObj = {} keys.forEach((key, j) => { dataObj[key] = row[j]; }); dataArr.push(dataObj); }); } console.log(dataArr)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda