Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

147
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda