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

155
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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