Aller au contenu principal
ShadowAcademy

Les langages JavaScript Tableaux et objets

Transformer des tableaux

Ces méthodes reçoivent une fonction qu'elles appliquent à chaque élément, et ne modifient pas le tableau d'origine (sauf sort).

const prix = [10, 25, 8];

prix.map((p) => p * 2);          // [20, 50, 16]  : transformer chaque élément
prix.filter((p) => p > 9);       // [10, 25]      : garder ceux qui passent le test
prix.find((p) => p > 9);         // 10            : le PREMIER qui passe
prix.some((p) => p > 20);        // true          : au moins un ?
prix.every((p) => p > 5);        // true          : tous ?
prix.reduce((total, p) => total + p, 0);   // 43 : tout combiner en une valeur

reduce part de la valeur initiale (0) et la fait évoluer élément par élément.

Trier

["kiwi", "abricot", "mangue"].sort();        // ordre alphabétique
[10, 9, 100].sort();                         // [10, 100, 9] : trié comme du TEXTE !
[10, 9, 100].sort((a, b) => a - b);          // [9, 10, 100]

Sans fonction, sort compare des textes, caractère par caractère : les lettres accentuées passent après le z. Pour des nombres, on fournit la comparaison ; pour du texte en français, a.localeCompare(b) respecte l'ordre du dictionnaire.

sort modifie le tableau lui-même ; [...t].sort() trie une copie.

Enchaîner

const total = panier
    .filter((article) => article.disponible)
    .map((article) => article.prix)
    .reduce((a, b) => a + b, 0);

2 exercices pour cette lecon

Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte

  • Le total du panier moyen lecon a valider
  • Les produits en stock moyen lecon a valider