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

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

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 Report

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