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

151
Views
crear una matriz sobre la base del hijo del objeto

Tengo una matriz como:

 [ { "_id": "62434e4c52a870a3840f40fd", "Nome": [ { "_id": "61f76c3c7a308dd136f1d33a", "value": "Oo", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "Peso": [ { "_id": "61f92ec87a308dd136c0e182", "value": "554", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "createdAt": [ { "value": "29/03/2022 03:22:02" } ] }, { "_id": "62449de6ed196e40cb4309ae", "Nome": [ { "_id": "61f76c3c7a308dd136f1d33a", "value": "Ssg", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "Peso": [ { "_id": "61f92ec87a308dd136c0e182", "value": "255", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "createdAt": [ { "value": "29/03/2022 03:23:26" } ] }, ],

Con lo que tengo problemas es con el bucle entre cada objeto ejemplo Nome , Peso ¡los nombres de estas matrices son dinámicos y no tienen un nombre estático!

Ejemplo de lo que estoy pensando:

 [ { "_id": "62434e4c52a870a3840f40fd", "Nome": "Oo", "Peso": "554", "createdAt": "29/03/2022 03:22:02" }, { "_id": "62449de6ed196e40cb4309ae", "Nome": "Ssg", "Peso": "255", "createdAt": "29/03/2022 03:23:26" } ],

gracias por la ayuda

about 4 years ago · Santiago Gelvez
3 answers
Answer question

0

Si cada conjunto de propiedades Nome , Peso , createdAt siempre tiene un elemento, entonces puede usar Array#map de la siguiente manera:

 const input = [ { "_id": "62434e4c52a870a3840f40fd", "Nome": [ { "_id": "61f76c3c7a308dd136f1d33a", "value": "Oo", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "Peso": [ { "_id": "61f92ec87a308dd136c0e182", "value": "554", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "createdAt": [ { "value": "29/03/2022 03:22:02" } ] }, { "_id": "62449de6ed196e40cb4309ae", "Nome": [ { "_id": "61f76c3c7a308dd136f1d33a", "value": "Ssg", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "Peso": [ { "_id": "61f92ec87a308dd136c0e182", "value": "255", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "createdAt": [ { "value": "29/03/2022 03:23:26" } ] } ]; const output = input.map(({_id,...rest}) => ({ _id, ...Object.fromEntries( Object.entries(rest).map(([k,v]) => [k,v[0].value]) ) })); console.log( output );

about 4 years ago · Santiago Gelvez Report

0

Si considera que esas claves dinámicas tendrán una matriz, intente debajo del código.

 const data = [{ "_id": "62434e4c52a870a3840f40fd", "Nome": [{ "_id": "61f76c3c7a308dd136f1d33a", "value": "Oo", "updatedAt": "2022-05-04T00:00:00.000Z" }], "Peso": [{ "_id": "61f92ec87a308dd136c0e182", "value": "554", "updatedAt": "2022-05-04T00:00:00.000Z" }], "createdAt": [{ "value": "29/03/2022 03:22:02" }] }, { "_id": "62449de6ed196e40cb4309ae", "Nome": [{ "_id": "61f76c3c7a308dd136f1d33a", "value": "Ssg", "updatedAt": "2022-05-04T00:00:00.000Z" }], "Peso": [{ "_id": "61f92ec87a308dd136c0e182", "value": "255", "updatedAt": "2022-05-04T00:00:00.000Z" }], "createdAt": [{ "value": "29/03/2022 03:23:26" }] }, ]; data.map(d => { Object.keys(d).forEach(k => { if (Array.isArray(d[k]) && d[k].length > 0) d[k] = d[k][0].value; }); }); console.log(data);

about 4 years ago · Santiago Gelvez Report

0

La siguiente puede ser una posible solución para lograr el objetivo deseado.

Fragmento de código

 const transformArr = arr => ( arr.map(obj => ({ ...Object.fromEntries( Object.entries(obj) .map(([k, v]) => { if (v && v.length > 0 && Array.isArray(v) && "value" in v[0] ) { return [k, v[0].value] } else { return [k, v] } }) ) })) ); const origArr = [ { "_id": "62434e4c52a870a3840f40fd", "Nome": [ { "_id": "61f76c3c7a308dd136f1d33a", "value": "Oo", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "Peso": [ { "_id": "61f92ec87a308dd136c0e182", "value": "554", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "createdAt": [ { "value": "29/03/2022 03:22:02" } ] }, { "_id": "62449de6ed196e40cb4309ae", "Nome": [ { "_id": "61f76c3c7a308dd136f1d33a", "value": "Ssg", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "Peso": [ { "_id": "61f92ec87a308dd136c0e182", "value": "255", "updatedAt": "2022-05-04T00:00:00.000Z" } ], "createdAt": [ { "value": "29/03/2022 03:23:26" } ] }, ]; console.log(transformArr(origArr));

Explicación

  • Iterar sobre la matriz
  • Utilice Object.entries() y Object.fromEntries() para extraer pares clave-valor [k, v] (como matrices) y luego volver a crear (la matriz de pares clave-valor nuevamente en un) objeto
  • Compruebe si v es una matriz y si tiene un elemento en el índice 0 con un value prop
  • En caso afirmativo, transfórmelo para mostrar solo el value (del elemento índice-0)
  • De lo contrario, simplemente devuelva v tal cual

Restricción

Si la matriz interna (para "Nomo", "Peso" u otras "claves dinámicas") tiene más de un elemento, solo se considerará el value del elemento índice-0.

NOTA

Esta solución no muta la matriz original. Crea una nueva copia y, si es necesario, puede reasignarse a la matriz original.

about 4 years ago · Santiago Gelvez 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!