Ejercicio de JavaScript: buscador de productos en tiempo real

En este ejercicio de JavaScript de buscador de productos filtrarás una lista local mientras la persona escribe.

Enunciado

Crea un campo de búsqueda y cuatro productos. Ignora mayúsculas y espacios exteriores. Muestra el número de coincidencias y un mensaje cuando no haya resultados.

Solución comentada

Prueba el fragmento dentro del cuerpo de un documento HTML. Incluye la etiqueta viewport si vas a comprobar el resultado en móvil.

<label for="buscar">Buscar producto</label>
<input id="buscar" type="search">
<p id="estado" role="status"></p>
<ul id="productos"></ul>
<script>
  const productos = ["Cuaderno azul", "Lápiz negro", "Mochila", "Cuaderno rojo"];
  const campo = document.querySelector("#buscar");
  const lista = document.querySelector("#productos");
  const estado = document.querySelector("#estado");
  function mostrar() {
    const consulta = campo.value.trim().toLocaleLowerCase("es");
    const visibles = productos.filter(nombre =>
      nombre.toLocaleLowerCase("es").includes(consulta)
    );
    const elementos = visibles.map(nombre => {
      const li = document.createElement("li");
      li.textContent = nombre;
      return li;
    });
    lista.replaceChildren(...elementos);
    estado.textContent = visibles.length
      ? "Resultados: " + visibles.length : "No se encontraron productos.";
  }
  campo.addEventListener("input", mostrar);
  mostrar();
</script>

La consulta vacía coincide con todos los productos. Filter selecciona coincidencias y textContent coloca cada nombre como texto. El ejercicio conserva los acentos: «lapiz» no coincide con «Lápiz» en esta versión.

Cómo comprobar tu solución

  1. Escribe « CUADERNO » y verifica que aparecen dos resultados.
  2. Borra la consulta y comprueba que reaparece la lista completa.
  3. Busca una palabra que no exista y comprueba el estado vacío.

Reto adicional

Haz que «lapiz» encuentre «Lápiz». Compara la consulta y el nombre mediante una función común y conserva la ortografía original al mostrar resultados.

Repasa los conceptos en el tutorial de MasterCodePro.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

logo mastercode pro
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Puedes ver mas detalle en nuestra pagina de privcidad