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

220
Vistas
¿Cómo fusionar 2 objetos en función de la clave del objeto A y el valor del objeto B?

Tengo este problema al que no encuentro solución, espero que alguno de ustedes me pueda ayudar con esta duda.

Así que tengo 2 objetos,

Objeto 1:

 [0: {Name: 'John', DOB: '01-01-1990',ID01: 'Yes',ID02: 'No',ID03: 'Maybe'} 1: {Name: 'Kelly', DOB: '01-01-1990',ID01: 'Yes',ID02: 'No',ID03: 'Maybe'} 2: {Name: 'Sam', DOB: '01-01-1990', ID01: 'Yes',ID02: 'No',ID03: 'Maybe'} 3: {Name: 'Jessie', DOB: '01-01-1990',ID01: 'Yes',ID02: 'No',ID03: 'Maybe'}]

Objeto 2:

 [0: {QnID:'ID01', Question: 'Do you like Ice-cream'} 1: {QnID:'ID02', Question: 'Do you like Chocolate'} 2: {QnID:'ID03', Question: 'Do you like Cookie'}]

Me gustaría fusionar estos 2 objetos juntos donde el sistema verificará el primer objeto para la misma ID y reemplazará la ID con la pregunta de la segunda tabla, por lo que mi resultado final será así:

 [0: {Name: 'John', DOB: '01-01-1990',Do you like Ice-cream: 'Yes',Do you like Chocolate: 'No',Do you like Cookie: 'Maybe'} 1: {Name: 'Kelly', DOB: '01-01-1990',Do you like Ice-cream: 'Yes',Do you like Chocolate: 'No',Do you like Cookie: 'Maybe'} 2: {Name: 'Sam', DOB: '01-01-1990', Do you like Ice-cream: 'Yes',Do you like Chocolate: 'No',Do you like Cookie: 'Maybe'} 3: {Name: 'Jessie', DOB: '01-01-1990',Do you like Ice-cream: 'Yes',Do you like Chocolate: 'No',Do you like Cookie: 'Maybe'}]

El conjunto de datos real es mucho más grande.

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

0

Crearía un mapa a partir de las preguntas, para que tenga acceso rápido a las preguntas:

 const qMap = {}; questions.forEach(q => { qMap[q.QnID] = q.Question; })

y luego pasar por todas las personas.

 persons.map(person => { const newPerson = {}; const keys = Object.keys(person); keys.forEach(key => { if (qMap[key]) { newPerson[qMap[key]] = person[key]; } else { newPerson[key] = person[key]; } }) return newPerson })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar una combinación de los métodos map() , Object.entries() , find() y Object.fromEntries() de la siguiente manera:

 const arr1 = [ { Name: 'John', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, { Name: 'Kelly', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, { Name: 'Sam', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, { Name: 'Jessie', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, ]; const arr2 = [ { QnID: 'ID01', Question: 'Do you like Ice-cream' }, { QnID: 'ID02', Question: 'Do you like Chocolate' }, { QnID: 'ID03', Question: 'Do you like Cookie' }, ]; const arr3 = arr1.map(({Name,DOB,...rest}) => ({ Name, DOB, ...Object.fromEntries( Object.entries(rest).map( ([prop,val]) => [arr2.find(obj => obj.QnID === prop)['Question'],val] ) ) })); console.log( arr3 );

about 4 years ago · Juan Pablo Isaza Denunciar

0

Bien, primero necesitas arreglar la estructura de tu matriz.

 const arr1 = [ { Name: 'John', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, { Name: 'Kelly', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, { Name: 'Sam', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, { Name: 'Jessie', DOB: '01-01-1990', ID01: 'Yes', ID02: 'No', ID03: 'Maybe' }, ]; const arr2 = [ { QnID: 'ID01', Question: 'Do you like Ice-cream' }, { QnID: 'ID02', Question: 'Do you like Chocolate' }, { QnID: 'ID03', Question: 'Do you like Cookie' }, ]; const result = arr1.map((obj) => Object.assign({ Name: obj.Name, DOB: obj.DOB }, ...arr2.map((obj2) => ({ [obj2.Question]: obj[obj2.QnID] }))) ); console.log(result);

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