Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!