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

191
Views
Usando un forEach dentro de un filtro para organizar datos

Estoy tratando de filtrar a través de un gran conjunto de datos que tiene una matriz anidada dentro de cuyos valores necesito compararlos con una cadena. Para compararlos, necesito limpiar las cadenas porque proviene de la entrada del usuario y el espaciado/mayúsculas puede variar. Así que mis funciones funcionaban a través de un filtro que se veía así

los datos inicialmente parecían

 formularyOptions = [{Condition: "headache"...}{Condition: "hair loss"..}...] chiefComplaint = "Headache"
 const cleanText = (value) => { let str = value; if (!str) { return value; } str = str.toLowerCase(); str = str.replace(/\s/g, ""); return str; }; let formularyList = formularyOptions.filter( (item) => !!chiefComplaint && cleanText(item.Condition) === cleanText(chiefComplaint), );

Y esto funcionó bien, pero ahora

Mis datos se ven así:

 [{Condition: ["headache", "migraine"]...}{Condition: ["hair loss"]..}...]

Intenté cambiar mi filtro para recorrer la matriz de Condiciones, pero eso no devuelve nada por alguna razón que no entiendo. Y el método include no funcionará ya que distingue entre mayúsculas y minúsculas. Cualquier consejo sobre cómo abordar esto o incluso por qué un forEach no funcionaría dentro de un .filter sería muy útil. Este es mi intento con un bucle for:

 let formularyList = formularyOptions.filter( (item) => !!chiefComplaint && item.Condition.forEach((condition) => cleanText(condition) === cleanText(chiefComplaint)), );

que simplemente devuelve una matriz vacía ...

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Estás incluyendo un .forEach(...) dentro de un condicional booleano, pero es nulo, solo se repite, no se devuelve nada.

Creo que en realidad necesitas usar .some(...) en su lugar, que intentará encontrar algún elemento que corresponda a la condición:

 let formularyList = formularyOptions.filter( (item) => !!chiefComplaint && item.Condition.some((condition) => cleanText(condition) === cleanText(chiefComplaint)), );
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!