Passer au contenu principal
eLearner.app
Module 6 · Leçon 1 sur 421/32 dans le cours~10 min
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.

JS
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 :

JS
numeri; // [1, 2, 3, 4]  ← invariato

filter : 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.

JS
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.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

À toi de jouer

Exercice#js.m6.l1.e1
Tentatives : 0Chargement…

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.

Chargement de l'éditeur…
Afficher l'indice

prices.map((p) => p * (1 + rate))

Solution disponible après 3 tentatives

Exercice de révision

Exercice#js.m6.l1.e2
Tentatives : 0Chargement…

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.

Chargement de l'éditeur…
Afficher l'indice

Chaîne : .filter(...).map((p) => p.name)

Solution disponible après 3 tentatives