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

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

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 Report

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 Report

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 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!