Tableaux & objets
Pour ranger plusieurs valeurs : les tableaux (des listes ordonnées) et les objets (des fiches avec des champs nommés).
Les tableaux
Une liste entre crochets. Chaque élément a un indice, qui commence à 0 !
Avec const jours = ["lun", "mar", "mer"], que vaut jours[1] ?
"lun""mar"undefined
Les indices commencent à 0 : jours[0] = "lun", jours[1] = "mar".
Parcourir un tableau
Les super-pouvoirs : map, filter, find
| Méthode | Renvoie |
|---|---|
map(fn) | un nouveau tableau, chaque élément transformé |
filter(fn) | un nouveau tableau avec les éléments qui passent le test |
find(fn) | le premier élément qui passe le test |
reduce(fn, départ) | une seule valeur (somme, total…) |
Les objets
Un objet regroupe des informations sous forme clé: valeur, comme une fiche.
Le combo : un tableau d'objets
C'est la forme de données la plus courante sur le Web (liste de produits, de messages, d'utilisateurs…).
À toi de jouer
La moyenne
Écris moyenne(notes) qui renvoie la moyenne d'un tableau de nombres.
Indice
Moyenne = somme des notes ÷ nombre de notes.Indice
Additionne les notes avec une boucle :let total = 0;
for (const note of notes) {
total += note;
}Indice
Le nombre de notes, c’estnotes.length : return total / notes.length;Seulement les majeurs
Crée nomsAdultes : un tableau contenant uniquement les prénoms des personnes de 18 ans ou plus. Utilise filter puis map.
Indice
Deux étapes : garder les majeurs (filter), puis ne garder que leur prénom (map).Indice
personnes.filter(p => p.age >= 18) renvoie les objets des majeurs (18 ans compris, d’où le >=).Indice
Enchaîne les deux :personnes.filter(…).map(p => p.prenom)Le total du panier
Écris totalPanier(panier) qui renvoie le prix total (prix × quantité de chaque article).
Indice
Chaque ligne du panier coûteprix × quantite.Indice
Pars delet total = 0; puis parcours le panier avec for (const ligne of panier) { … }.Indice
Dans la boucle :total += ligne.prix * ligne.quantite;, et après la boucle : return total;La fiche livre
- Crée un objet
livreavectitre,auteuretannee(un nombre). - Écris
description(livre)qui renvoie par exemple"Le Petit Prince, de Saint-Exupéry (1943)".
Indice
Un objet :{ cle: valeur, cle2: valeur2 }. Le texte entre guillemets, l’année sans guillemets.Indice
Dans la fonction, lis les propriétés avec un point :livre.titre, livre.auteur, livre.annee.Indice
Attention à la virgule et aux parenthèses :return `${livre.titre}, de ${livre.auteur} (${livre.annee})`;À retenir
- Tableau :
[a, b, c], indices depuis 0,.length,.push(). - Parcours :
for (const x of tab)outab.forEach(). maptransforme,filtertrie,findcherche,reducecumule.- Objet :
{ cle: valeur }, accès avecobjet.cle.