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

175
Views
Crear una matriz a partir de cada clave en una matriz de objetos

Tengo una matriz que se parece a esta: la matriz de objetos es mucho más grande y cada objeto tiene más propiedades, sin embargo, esta es la estructura.

 let arr = [ { id: 1, name: "tony", hatColor: "blue" }, { id: 2, name: "larry", hatColor: "red" }, { id: 3, name: "stuart", hatColor: "green" }, ];

Quiero crear una matriz para cada clave en esta matriz, así que tengo una matriz con todos los identificadores, una matriz con todos los nombres y una con todos los hatColors.

 idArr = [1, 2, 3]; nameArr = [tony, larry, stuart]; hatColorArr = [blue, red, green];

No sabré exactamente cómo se ve la matriz de objetos cuando se devuelve desde otro script.

Lo que he probado es:

 for (var [key, value] of Object.entries(arr)) { for (var [key, value] of Object.entries(value)) { var result = arr.map(({ key }) => key); console.log(result); } }

Esto devuelve una matriz de indefinidos. Espero que haya una manera de hacer esto, no quiero escribir muchas declaraciones if push codificadas para que esto funcione.

Gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede usar Array.map para extraer los valores de propiedad de cada elemento de la matriz.

 let arr=[{id:1,name:"tony",hatColor:"blue"},{id:2,name:"larry",hatColor:"red"},{id:3,name:"stuart",hatColor:"green"}]; function groupPropValues(objs, prop){ return objs.map(e => e[prop]) } idArr = groupPropValues(arr, 'id'); nameArr = groupPropValues(arr, 'name'); hatColorArr = groupPropValues(arr, 'hatColor'); console.log(idArr, nameArr, hatColorArr)

Si desea generar matrices automáticamente, puede hacerlo obteniendo las propiedades de cada objeto en la matriz, luego recuperando los valores y almacenándolos en un objeto.

 let arr=[{id:1,name:"tony",hatColor:"blue"},{id:2,name:"larry",hatColor:"red"},{id:3,name:"stuart",hatColor:"green"}]; function groupPropValues(objs, prop) { return objs.map(e => e[prop]) } const props = [...new Set(arr.reduce((a,b) => (a.push(Object.keys(b)), a), []).flat())] const result = props.reduce((a,b) => (a[b] = groupPropValues(arr, b), a), {}) console.log(result)

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!