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

346
Vistas
¿Cómo reconstruir una matriz de objetos basada en claves duplicadas?

Obtengo un objeto de matriz que se parece a esto. Mi objetivo es combinarlos o fusionarlos en función de claves duplicadas.

 documents: [ { image: 'sample image 1', id_side: 'Front', type: 'Passport' }, { image: 'sample image 2', id_side: 'Back', type: 'Passport' }, { image: 'sample image 3', id_side: 'Back', type: 'License' } ]

¿Cómo puedo arreglarlo para que se vea así?

 documents: [ { documentType: 'Passport', requiredDocs: [ { image: 'sample image 1', id_side: 'Front', type: 'Passport' }, { image: 'sample image 2', id_side: 'Back', type: 'Passport' } ] }, { documentType: 'License', requiredDocs: [ { image: 'sample image 3', id_side: 'Back', type: 'License' } ] } ]

He encontrado una pregunta similar pero parece que no puedo hacer que funcione en mi caso. Vea la pregunta similar en este enlace: ¿Cómo fusionar/combinar una matriz de objetos basados en claves duplicadas?

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

0

Puedes lograr tu salida con esto

 const documents = [ { image: "sample image 1", id_side: "Front", type: "Passport" }, { image: "sample image 2", id_side: "Back", type: "Passport" }, { image: "sample image 3", id_side: "Back", type: "License" } ]; let output = {}; documents.forEach((docs) => { if (output[docs.type]) { output[docs.type].requiredDocs.push(docs); } else { output[docs.type] = { documentType: docs.type, requiredDocs: [docs] }; } }); console.log(Object.values(output));
about 4 years ago · Juan Pablo Isaza Denunciar

0

Use reduce() para crear un objeto de acumulación y luego map() las entradas de ese objeto al formato de salida deseado:

 const data = [{ image: 'sample image 1', id_side: 'Front', type: 'Passport' }, { image: 'sample image 2', id_side: 'Back', type: 'Passport' }, { image: 'sample image 3', id_side: 'Back', type: 'License' }]; const result = Object.entries(data.reduce((a, v) => ({ ...a, [v.type]: [...a[v.type] || [], v] }), {})).map(([documentType, requiredDocs]) => ({ documentType, requiredDocs })); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto supone que la clave con la que desea tratar es type . Cree una asignación de objetos desde el tipo a todos los objetos relevantes y luego map al formato deseado.

 const obj={documents:[{image:'sample image 1',id_side:'Front',type:'Passport'},{image:'sample image 2',id_side:'Back',type:'Passport'},{image:'sample image 3',id_side:'Back',type:'License'}]}; let types = obj.documents.reduce((a, { type, ...r }) => { a[type] = a[type] || []; a[type].push({ type, ...r }); return a; }, {}); let result = Object.entries(types).map(([ documentType, requiredDocs ]) => ({ documentType, requiredDocs })); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: auto; }

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