Vai al contenuto
eLearner.app
Modulo 6 · Lezione 1 di 421/32 nel corso~10 min
Lezioni del modulo (1/4)

map e filter

Due metodi essenziali: trasformano un array in un nuovo array, senza mutare l'originale.

map: trasforma ogni elemento

Riceve una funzione, la applica a ogni elemento, restituisce un array della stessa lunghezza con i risultati.

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'originale resta intatto:

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

filter: seleziona un sottoinsieme

Riceve un predicato (una funzione che ritorna true/false). Tiene solo gli elementi per cui il predicato è vero.

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]

Combinare i due

Pipeline classica: filtra, poi trasforma.

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

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

Prova tu

Esercizio#js.m6.l1.e1
Tentativi: 0Caricamento…

Definisci `vat(prices, rate)`: dato un array di numeri e una aliquota (es. 0.22), restituisce un array con i prezzi maggiorati dell'IVA. Usa map.

Caricamento editor…
Mostra suggerimento

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

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#js.m6.l1.e2
Tentativi: 0Caricamento…

Definisci `adultNames(people)`: ricevi un array di oggetti { name, age } e ritorni l'array dei nomi delle persone con age >= 18. Usa filter + map.

Caricamento editor…
Mostra suggerimento

Catena: .filter(...).map((p) => p.name)

Soluzione disponibile dopo 3 tentativi