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

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

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 Denunciar

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