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

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

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