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

164
Vistas
búsqueda parcial y búsqueda en minúsculas en nodejs

Estoy tratando de implementar múltiples funciones de búsqueda, como nombre de usuario e Id de usuario con entradas separadas para nombre de usuario e Id de usuario. Si doy un nombre de usuario como "Dave Steve" o "dave steve" o "Dave" o "steve" o "dav" y hago clic en el botón de búsqueda, debería obtener el resultado. Pero cuando doy "Dave steve" funciona bien pero no con otro caso ¿Cómo lo implemento?

datos json:

 let logData={ "dataLog": [ { "userId":"1", "userName":"Dave Steve", }, { "userId":"2", "userName":"John Doe", } ], }

Aquí está mi código

 app.get('/getData', (req, res) => { let accessData= logData.dataLog; let userName = req.query.userName; let userId = req.query.userId; console.log(userName, userId) let filterData = accessData.filter((data) => { return (userId === undefined || data.userId === userId) && (userName === undefined || userName === userNameData) }) console.log(filterData) const response = { header: getSuccessHeader, body: filterData }; res.status(200); res.send(response); });
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Por favor pruebalo

 app.get('/getData', (req, res) => { let accessData= logData.dataLog; let userName = req.query.userName; let userId = req.query.userId; console.log(userName, userId) let filterData = accessData.filter((data) => { return (userId === undefined || data.userId === userId) && (userName === undefined || userName.toLowerCase().includes(userNameData.toLowerCase())) }) console.log(filterData) const response = { header: getSuccessHeader, body: filterData }; res.status(200); res.send(response); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Es porque Dave Steve no es realmente igual a Dave steve cuando compara cadenas usando === . Es sensible a mayúsculas y minúsculas.

Puede usar .toLowerCase() tanto para userName como para userNameData al comparar los dos.

Entonces su comparación se vería así:

 userName.toLowerCase() === userNameData.toLowerCase()

EDITAR:

Pasé por alto por completo que quieres una comparación parcial de cadenas. Por lo tanto, debería usar .includes(string) en su lugar.

 userName.toLowerCase().includes(userNameData.toLowerCase())
about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay un enlace de stackblitz implementado para usted, revíselo.

La comparación debe ocurrir con ambos casos con una declaración o:

 userName.toLowerCase() === data.userName.toLowerCase() || userName.toLowerCase().indexOf(data.userName.toLowerCase()) === -1
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