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

184
Vistas
La mejor manera de encontrar la diferencia entre 2 matrices de objetos

Tengo estas 2 matrices de objetos.

ingrese la descripción de la imagen aquí

Perdón por publicar la imagen porque quiero que entiendan rápidamente mis puntos.

¿Cuál es la mejor manera de comparar 2 matrices de objetos y buscar lo que no está en él?

Puedo hacer 2 niveles para bucles y un control de si, pero no estoy seguro de si es el mejor enfoque. Estoy buscando una forma JS de mejor rendimiento para lograr algo como esto.

Esto es lo que busco extraer al comparar arr1 y arr2 .

 { "id": 4, "name": "Date and Time" }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Diferentes formas de lograr este requisito. También creé una verificación de rendimiento basada en las siguientes 3 soluciones aquí . Ejecute amablemente este conjunto de pruebas y, según el resultado, puede usar cualquiera de las siguientes soluciones en su proyecto.

  1. Filtre la matriz usando el método Array.filter() y encuentre la identificación en la otra matriz usando el método Array.find() .

 const arr1 = [{ id: 1, name: "Weather" }, { id: 2, name: "Geo Location" }, { id: 3, name: "Device" }]; const arr2 = [{ id: 1, name: "Weather" }, { id: 2, name: "Geo Location" }, { id: 3, name: "Device" }, { id: 4, name: "Date and Time" }]; const res = arr2.filter((obj) => !arr1.find(({ id }) => obj.id === id)); console.log(res);

  1. Usando el método Array.includes() .

 const arr1 = [{ id: 1, name: "Weather" }, { id: 2, name: "Geo Location" }, { id: 3, name: "Device" }]; const arr2 = [{ id: 1, name: "Weather" }, { id: 2, name: "Geo Location" }, { id: 3, name: "Device" }, { id: 4, name: "Date and Time" }]; const IDArray = arr1.map(obj => obj.id); const res = arr2.filter(obj => !IDArray.includes(obj.id)); console.log(res);

  1. Use Array.some() junto con el método Array.filter() .

 const arr1 = [{ id: 1, name: "Weather" }, { id: 2, name: "Geo Location" }, { id: 3, name: "Device" }]; const arr2 = [{ id: 1, name: "Weather" }, { id: 2, name: "Geo Location" }, { id: 3, name: "Device" }, { id: 4, name: "Date and Time" }]; const res = arr2.filter(({ id }) => !arr1.some(x => x.id == id)) console.log(res)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una forma es concatenar ambas matrices juntas, luego iterar y filtrar para ver si esa identificación existe en ambas matrices. Si no existe en ambas matrices, es extra.

 a1.concat(a2).filter(a => a1.findIndex(f => f.id === a.id) == -1 || a2.findIndex(f => f.id === a.id) == -1) 

 let arr1 = [{"id": 1,"name": "Date and Time"},{"id": 2,"name": "Date and Time"},{"id": 3,"name": "Date and Time"},{"id": 4,"name": "Date and Time"}] let arr2 = [{"id": 1,"name": "Date and Time"},{"id": 2,"name": "Date and Time"},{"id": 3,"name": "Date and Time"}] const findMissing = (a1, a2) => a1.concat(a2).filter(a => a1.findIndex(f => f.id === a.id) == -1 || a2.findIndex(f => f.id === a.id) == -1) console.log(findMissing(arr1, arr2))

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