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

100
Vistas
Encuentra una cadena en una matriz de objetos

Tengo dos matrices diferentes y estoy tratando de filtrar una mientras hago un bucle en la otra.

 const serviceCodes = [ { ...otherStuff... "codes": [ "786410010", "787885010" ] } ]

y

 const laborCost = [ { "laborCode": "786410010", "estimatedCost": { "value": -1, "currency": "USD" } }, { "laborCode": "787885010", "estimatedCost": { "value": -1, "currency": "USD" } } ]

Estoy recorriendo serviceCodes e intentando devolver solo el objeto que coincide con laborCode

 const serviceMatchesRow = serviceCodes[0].codes.forEach((code) => { return laborCost?.find( (service) => service.laborCode === code, ) })

Esto está devolviendo indefinido ya que forEach solo se ejecuta a través de él, pero si uso .map en su lugar, devuelve los 2 objetos dentro de laborCost . Si cambio por .find en su lugar, devuelve una matriz con el laborCode de trabajo ["786410010", 787885010] .

Entonces, ¿cómo puedo evitar esto?

La salida deseada sería algo como:

 [{ "laborCode": "786410010", "estimatedCost": { "value": -1, "currency": "USD" } }]
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

forEach método no devuelve nada

por lo que debe insertar los objetos de coincidencias en una nueva matriz. o use el método .map

 const serviceMatchesRow = []; serviceCodes[0].codes.map((code) => { serviceMatchesRow.push(laborCost.find((service) => { return service.laborCode === code } )); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Problema: está intentando regresar desde dentro del bloque foreach; eso no devolverá nada por eso ves indefinido.

Solución: use el mapa para regresar mientras itera en una matriz.

 const serviceMatchesRow = serviceCodes[0].codes.map((code) => { return laborCost.find( (service) => service.laborCode === code, ) })

Violín de trabajo: https://jsfiddle.net/240z5u3f/3/

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