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

171
Visualizações
Compara 2 matrices de objetos

Quiero comparar 2 matrices de objetos para encontrar el objeto u objetos que no coinciden. En el siguiente ejemplo, debería generar {label: 'Addition', type: 'address', name: 'address_4', defaultValue: 'test'} ya que este objeto no coincide.

 const A = [{ label: 'Street Name', type: 'address', name: 'address_1', defaultValue: 'test1' }, { label: 'House Number', type: 'address', name: 'address_2', defaultValue: '1563l1' }, { label: 'Addition', type: 'address', name: 'address_3', defaultValue: 'ABC684' } ] const B = [{ label: 'Street Name', type: 'address', name: 'address_1', defaultValue: 'test1' }, { label: 'House Number', type: 'address', name: 'address_2', defaultValue: '1563l1' }, { label: 'Addition', type: 'address', name: 'address_3', defaultValue: 'ABC684' }, { label: 'Addition', type: 'address', name: 'address_4', defaultValue: 'test' } ] const newSet = A; const currentSet = B; let difference = currentSet.filter((page1) => !newSet.find(page2 => page1.name === page2.name)) console.log(difference);

Esto no funciona. Da salida a un Array vacío. ¿Qué estoy haciendo mal?

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

0

Puede comparar A con B , lo que devuelve una matriz vacía porque no hay ningún elemento en A que no exista en B ; en su lugar, debe comparar B con A

El siguiente código devolverá una matriz vacía

 const A = [ { label: "Street Name", type: "address", name: "address_1", defaultValue: "test1", }, { label: "House Number", type: "address", name: "address_2", defaultValue: "1563l1", }, { label: "Addition", type: "address", name: "address_3", defaultValue: "ABC684", }, ]; const B = [ { label: "Street Name", type: "address", name: "address_1", defaultValue: "test1", }, { label: "House Number", type: "address", name: "address_2", defaultValue: "1563l1", }, { label: "Addition", type: "address", name: "address_3", defaultValue: "ABC684", }, { label: "Addition", type: "address", name: "address_4", defaultValue: "test", }, ]; let difference = A.filter((page1) => { const result = B.find((page2) => page1.name === page2.name); return !result; }); console.log(difference);

Debes comparar B con A como:

 const A = [ { label: "Street Name", type: "address", name: "address_1", defaultValue: "test1", }, { label: "House Number", type: "address", name: "address_2", defaultValue: "1563l1", }, { label: "Addition", type: "address", name: "address_3", defaultValue: "ABC684", }, ]; const B = [ { label: "Street Name", type: "address", name: "address_1", defaultValue: "test1", }, { label: "House Number", type: "address", name: "address_2", defaultValue: "1563l1", }, { label: "Addition", type: "address", name: "address_3", defaultValue: "ABC684", }, { label: "Addition", type: "address", name: "address_4", defaultValue: "test", }, ]; let difference = B.filter((page1) => { const result = A.find((page2) => page1.name === page2.name); return !result; }); console.log(difference);

Si hay un caso en el que desea obtener la diferencia entre dos matrices, puede hacer lo siguiente:

 const [small, large] = A.length < B.length ? [A, B] : [B, A]; let difference = large.filter((page1) => { const result = small.find((page2) => page1.name === page2.name); return !result; });
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