Leçons du module (1/4)
map et filter
Deux méthodes essentielles : elles transforment un tableau en un nouveau tableau, sans modifier l'original.
map : transforme chaque élément
Elle reçoit une fonction, l'applique à chaque élément et renvoie un tableau de même longueur contenant les résultats.
const numeri = [1, 2, 3, 4];
const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]
const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']L'original reste intact :
numeri; // [1, 2, 3, 4] ← invariatofilter : sélectionne un sous-ensemble
Elle reçoit un prédicat (une fonction qui renvoie true/false). Elle ne conserve que les éléments pour lesquels le prédicat est vrai.
const numeri = [1, 2, 3, 4, 5, 6];
const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]
const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]Combiner les deux
Pipeline classique : on filtre, puis on transforme.
const prezzi = [12, 5, 100, 30, 7];
const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]À toi de jouer
Définis `vat(prices, rate)` : étant donné un tableau de nombres et un taux (ex. 0.22), renvoie un tableau contenant les prix majorés de la TVA. Utilise map.
Afficher l'indice
prices.map((p) => p * (1 + rate))
Solution disponible après 3 tentatives
Exercice de révision
Définis `adultNames(people)` : reçoit un tableau d'objets { name, age } et renvoie le tableau des noms des personnes ayant age >= 18. Utilise filter + map.
Afficher l'indice
Chaîne : .filter(...).map((p) => p.name)
Solution disponible après 3 tentatives