Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

92
Visualizações
Comparing two arrays, have one property from first to second where id of element is same

I want to work with two arrays by comparing them and do some merging of properties:

I have my array1 and array2 as :

array1 = [
          { id: 10, name: 'abc', otherData: 'other' },
          { id: 20, name: 'def', otherData: 'other' },
          { id: 30, name: 'ghi', otherData: 'other' },
        ];
array2 = [
          { id: 10, nameV2: 'xyz', otherData: 'other' },
          { id: 20, nameV2: 'pqr', otherData: 'other' },
          { id: 30, nameV2: 'tvs', otherData: 'other' },
        ];

I'm expecting this result where I will compare both arrays, iterate over elements, if id is same then have nameV2 key from array2 in array1's elements

expected output :

array1 = [
          { id: 10, name: 'abc', otherData: 'other', nameV2: 'xyz' },
          { id: 20, name: 'def', otherData: 'other', nameV2: 'pqr' },
          { id: 30, name: 'ghi', otherData: 'other', nameV2: 'tvs' },
        ];

how to achieve this?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Here's an approach to do this, we create a look-up map(idNameV2Map) using array2 and then use it to get the desired output

const array1 = [{ id: 10, name: 'abc', otherData: 'other' }, { id: 20, name: 'def', otherData: 'other' }, { id: 30, name: 'ghi', otherData: 'other' }];
const array2 = [{ id: 10, nameV2: 'xyz', otherData: 'other' }, { id: 20, nameV2: 'pqr', otherData: 'other' },{ id: 30, nameV2: 'tvs', otherData: 'other' }];

const idNameV2Map = array2.reduce((acc, curr) => {
   acc[curr.id] = curr.nameV2;
   return acc;
}, {});

const output = array1.map((item) => {
   if (idNameV2Map[item.id]) {
       return { ...item, nameV2: idNameV2Map[item.id] };
   }

   return item;
});

console.log(output);

about 4 years ago · Juan Pablo Isaza Relatório

0

Another approach using Array.find()
with conditionally add nameV2 property to the object if it's exist.

const array1 = [{ id: 10, name: 'abc', otherData: 'other' }, { id: 20, name: 'def', otherData: 'other' }, { id: 30, name: 'ghi', otherData: 'other' }];
const array2 = [{ id: 10, nameV2: 'xyz', otherData: 'other' }, { id: 20, nameV2: 'pqr', otherData: 'other' },{ id: 30, nameV2: 'tvs', otherData: 'other' }];

const output = array1.map((item) => {
    let objFound = array2.find(obj=>obj.id===item.id);
   return { ...item, ...(objFound && {nameV2: objFound.nameV2}) };
});

console.log(output);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda