Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!