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

151
Visualizações
Examine elementos duplicados en dos matrices en JavaScript

Tengo dos matrices, quiero que estas dos se combinen y los elementos duplicados no se encienden y solo se agregan elementos nuevos y veo la matriz combinada en la consola. También quiero ver el elemento duplicado en la lista de la consola. Quiero decir, Necesito dos salidas, una que me diga qué es un duplicado y otra que me muestre una nueva matriz de combinaciones de dos matrices sin duplicados. Escribí este código pero no funciona correctamente Gracias por guiarme

Rendimiento esperado:

 newContact : [ { "id": 1, "name": "Oliver" }, { "id": 2, "name": "Liam" } { "id": 3, "name": "James" } { "id": 4, "name": "Lucas" } ] duplicateContacts: Oliver 

 let array1 = [ { id: 1, name: "Oliver" }, { id: 2, name: "Liam" }, ]; let array2 = [ { id: 1, name: "Oliver" }, { id: 3, name: "James" }, { id: 4, name: "Lucas" }, ]; let newContact = array1.filter((item) => item.id !== array2.id); console.log("newContact :", newContact); console.log("duplicateContacts:");

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

0

Suponga que duplicado significa la misma identificación, agregue entradas de matriz a un mapa para encontrar duplicados, y el mapa contiene elementos únicos

 const array1 = [ { id: 1, name: "Oliver" }, { id: 2, name: "Liam" }, ]; const array2 = [ { id: 1, name: "Oliver" }, { id: 3, name: "James" }, { id: 4, name: "Lucas" }, ]; const duplicates = []; const map = new Map(); const fill = (array) => array.forEach(item => { if (map.has(item.id)) { duplicates.push(item); } else { map.set(item.id, item); } }); fill(array1); fill(array2); console.log(duplicates); console.log([...map.values()]);

Editar

Para tomar matrices como entrada, cree una función

 const inspect = (...arrays) => { const duplicates = []; const map = new Map(); const fill = (array) => array.forEach(item => { if (map.has(item.id)) { duplicates.push(item); } else { map.set(item.id, item); } }); arrays.forEach(array => fill(array)); console.log(duplicates); console.log([...map.values()]); }; const array1 = [ { id: 1, name: "Oliver" }, { id: 2, name: "Liam" }, ]; const array2 = [ { id: 1, name: "Oliver" }, { id: 3, name: "James" }, { id: 4, name: "Lucas" }, ]; inspect(array1, array2);

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede tomar un Set de array2 con todas las id y filtrar la otra matriz.

 const array1 = [{ id: 1, name: "Oliver" }, { id: 2, name: "Liam" }], array2 = [{ id: 1, name: "Oliver" }, { id: 3, name: "James" }, { id: 4, name: "Lucas" }], set2 = new Set(array2.map(({ id }) => id)), duplicateContacts = array1.filter(({ id }) => set2.has(id)); allContacts = [...array1, ...array2].filter( (s => ({ id }) => !s.has(id) && s.add(id)) (new Set) ), console.log("allContacts:", allContacts); console.log("duplicateContacts:", duplicateContacts);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

con tres métodos:

  • filter para obtener una matriz de elementos duplicados

  • map para recuperar solo una matriz de una columna

  • some para describir cómo se deben comparar los objetos en la matriz

     const duplicates = array1.filter(value => array2.some(oneElement => oneElement.id === value.id)); const duplicatesId = array1.filter(value => array2.some(oneElement => oneElement.id === value.id)).map(oneElement => oneElement.id); const mergedArray = [ ...array1, ...array2.filter(value => !duplicatesId.some(oneDuplicate => oneDuplicate === value.id)) ]; 

 const array1 = [ { id: 1, name: "Oliver" }, { id: 2, name: "Liam" }, ]; const array2 = [ { id: 1, name: "Oliver" }, { id: 3, name: "James" }, { id: 4, name: "Lucas" }, ]; const duplicates = array1.filter(value => array2.some(oneElement => oneElement.id === value.id)); const duplicatesId = array1.filter(value => array2.some(oneElement => oneElement.id === value.id)).map(oneElement => oneElement.id); const mergedArray = [ ...array1, ...array2.filter(value => !duplicatesId.some(oneDuplicate => oneDuplicate === value.id)) ]; console.log(duplicates); console.log(duplicatesId); console.log(mergedArray);

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