Salt la conținutul principal
Modulul 6 · Lecția 1 din 421/32 în curs~10 min
Lecții din modul (1/4)

harta și filtrarea

Două metode esențiale: transformă o matrice într-o matrice nouă, fără a modifica originalul.

map: transformați fiecare element

Ia o funcție, o aplică fiecărui element și returnează o matrice de aceeași lungime cu rezultatele.

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']

Originalul rămâne neatins:

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

filter: selectați un subset

Este nevoie de un predicat (o funcție care returnează adevărat/fals). Păstrează doar elementele pentru care predicatul este adevărat.

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]

Combinând cele două

Conductă clasică: filtrați, apoi transformați.

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

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

Încearcă

Exercițiu#js.m6.l1.e1
Încercări: 0Se încarcă…

Definiți „vat(prețuri, rată)”: având în vedere o serie de numere și o rată (de exemplu, 0,22), returnați o matrice cu prețurile majorate cu TVA. Utilizați harta.

Se încarcă editorul...
Afișează indiciu

price.map((p) => p * (1 + tarif))

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#js.m6.l1.e2
Încercări: 0Se încarcă…

Definiți `adultNames(people)`: primiți o serie de obiecte { name, age } și returnați matricea de nume de persoane cu vârsta >= 18. Folosiți filtru + hartă.

Se încarcă editorul...
Afișează indiciu

Lanț: .filter(...).map((p) => p.name)

Soluție disponibilă după 3 încercări