IntermédiaireNon commencé
Exercice 10.3 · 12 min · 0 tentative
Recherche de produits
🎯 Objectif
Ajouter une recherche en temps réel qui filtre les produits par leur titre.
📖 Contexte
Les produits sont déjà chargés depuis l'API et stockés dans la variable produits. On va maintenant les filtrer côté client à chaque frappe dans le champ de recherche.
filter() : garder ce qui nous intéresse
filter() crée un nouveau tableau en ne gardant que les éléments qui passent un test :
const nombres = [1, 2, 3, 4, 5]
const pairs = nombres.filter(function(n) {
return n % 2 === 0 // Garde si pair
})
// pairs → [2, 4]
Recherche insensible à la casse
Pour que "mascara" trouve aussi "Mascara", on met tout en minuscules :
const titre = "Essence Mascara"
titre.toLowerCase() // → "essence mascara"
titre.toLowerCase().includes("mascara") // → true
L'événement "input"
L'événement input se déclenche à chaque frappe dans un champ texte. C'est parfait pour une recherche en temps réel :
champ.addEventListener("input", function() {
console.log(champ.value) // Affiche le texte à chaque frappe
})
📝 Consigne
- Complète
filtrerProduits(texte): utilise.filter()pour garder les produits dont le titre contient le texte recherché (en minuscules) - Ajoute un
addEventListener("input")sur le champ#recherche: à chaque frappe, filtre les produits et réaffiche le tableau
Astuce : Le filtrage se fait sur les données en mémoire (le tableau produits), pas via un nouvel appel API. C'est instantané !
Objectifs
- Utiliser filter()
- Convertir en minuscules
- Écouter l'événement input
- Écouter l'événement 'input'
- Utiliser includes()
Lis bien les instructions et lance-toi !
Indices (0/3)
Indice 1 verrouillé
Indice 2 verrouillé
Indice 3 verrouillé