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

111
Vistas
filtrado con múltiples condiciones en javascript

Estoy tratando de filtrar datos según la entrada y funciona bien, pero quiero agregarle una condición adicional. Debería regresar si se proporciona el título u otro valor (por ejemplo, sendFrom).

 const newData = masterDataSource.filter(function (item) { const itemData = item.titel ? item.titel.toUpperCase() : ''.toUpperCase(); const textData = text.toUpperCase(); return itemData.indexOf(textData) > -1; });

Intenté agregar algunos operadores pero no funcionó como estaba planeado

 const newData = masterDataSource.filter(function (item) { const itemData = item.titel || item.sendFrom ? item.titel.toUpperCase() || item.sendFrom.toUpperCase() : ''.toUpperCase(); const textData = text.toUpperCase(); return itemData.indexOf(textData) > -1; });

Gracias

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si entiendo lo que buscas, querrías algo como:

 const itemData = item.titel ? item.titel.toUpperCase() : (item.sendFrom ? item.sendFrom.toUpperCase() : ''.toUpperCase());

No se requieren paréntesis, pero los agregué para que sea más fácil obtener la lógica.

Además, ''.toUpperCase() no tiene mucho sentido, es lo mismo que '' .

Podrías reemplazar la condición inicial con

 const itemData = (item.titel && item.titel.toUpperCase()) || '';

y la versión revisada:

 const itemData = (item.titel && item.titel.toUpperCase()) || (item.sendFrom && item.sendFrom.toUpperCase()) || '';

De nuevo, no se requieren paréntesis.

Referencias:
Operador condicional (ternario)
Operadores logicos

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede recopilar las propiedades deseadas en una matriz e iterarlas mientras verifica los valores.

 const newData = masterDataSource.filter(({ titel = '', sendFrom = '' }) => [titel, sendFrom].some(s => s.toUpperCase().includes(text.toUpperCase())) );
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