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

371
Vistas
¿Cómo filtrar una matriz JS según la entrada del usuario de tal manera que el usuario escriba "Brl" y muestre Berlín (las letras no son una tras otra inmediatamente)?

Tengo una serie de ciudades var cities = ['Berlin', 'Bucharest', 'Paris', 'Munich', 'Amsterdam', 'Milan']; Esta matriz debe filtrarse en función de la entrada de búsqueda pasada (por ejemplo, el usuario ingresa 'm' y muestra 'Munich', 'Amsterdam' y 'Milán' , luego el usuario agrega 'a' a 'm' en la búsqueda entrada (escribe 'ma' ), y le muestra "Amsterdam" y "Milán" , aunque estas letras no son una inmediatamente después de la otra). Además, necesito que estas letras se resalten de alguna manera, así que, digamos, las letras 'm' y 'a' en estas palabras son amarillas.

Esto es lo que he hecho hasta ahora, pero no funciona como lo necesito.

 var input = document.querySelector("input").value.toLowerCase().trim(); document.addEventListener('input', search) function search() { var filteredArray = cities.filter(x => x.toLowerCase().includes(input)); console.log(filteredArray);//to see what I've got }

¡Agradezco cualquier ayuda! Soy nuevo en JavaScript. ¡Gracias!

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

0

Podrías filtrar así.

 document.addEventListener('input', search); const cities = ['Berlin', 'Bucharest', 'Paris', 'Munich', 'Amsterdam', 'Milan']; function search(e) { const input = e.target.value.toLowerCase().trim(); const filteredArray = cities.filter(x => { const c = x.toLowerCase(); let m = 0; for (let l of input) { const i = c.substr(m).indexOf(l); if (i < m) return false; m = i; } return true; }); console.log(filteredArray);//to see what I've got }
 <input>

Además, es posible que recuerde los índices para resaltar las letras coincidentes.

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