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

136
Views
Verifique si ID se encuentra en otra matriz en ES6

Quería filtrar los datos. Quería verificar si los datos en data1 se encuentran en data2 y verificar si tiene mensajes de error. Por favor, compruebe mi código a continuación. Hay una mejor manera de hacerlo?

datos1

 [ { "ids": "0111", }, { "ids": "0222", }, { "ids": "0333", } ]

datos2

 [ { "id": "0111", "errorMessages": [ { "message": ["sample error message 1"] } ] }, { "id": "0333", "errorMessages": [] } ]

Código

 const output= data1.filter( (element) => element.ids === data2.find((data) => data).id ); console.log("output", output);
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

.find((data) => data) no hace nada útil: cada elemento de la matriz es un objeto, lo cual es cierto, por lo que siempre devolverá el primer elemento de la matriz.

Si .find un elemento coincidente en la otra matriz, entonces un mejor enfoque sería hacer un Conjunto de las ID encontradas en la otra matriz primero (La búsqueda de conjuntos es mucho más rápida - O(1) - que .find , que es O(n) ).

También debe implementar la lógica para verificar si los errorMessages de error están vacíos.

 const data1 = [ { "ids": "0111", }, { "ids": "0222", }, { "ids": "0333", } ] const data2 = [ { "id": "0111", "errorMessages": [ { "message": ["sample error message 1"] } ] }, { "id": "0333", "errorMessages": [] } ] const ids = new Set( data2 .filter(item => item?.errorMessages.length) .map(item => item.id) ); const output= data1.filter( element => ids.has(element.ids) ); console.log("output", output);

about 4 years ago · Juan Pablo Isaza Report

0

Sin Conjunto, pero use Objeto como mapa.

 const IDKeys = {}; data2.forEach(data => { if (data.errorMessages.length){ IDKeys[data.id] = true; // means valid } }) const filteredArray = data1.filter(data => IDKeys[data.id]);

Esto sería solo O (n) ya que acceder a la clave en el objeto es O (1)

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!