Przejdź do głównej treści
eLearner.app
Moduł 6 · Lekcja 1 z 421/32 w kursie~10 min
Lekcje modułu (1/4)

map i filter

Dwie kluczowe metody: transformują one tablicę w nową tablicę, bez modyfikowania oryginalnej.

map: transformuje każdy element

Przyjmuje funkcję, aplikuje ją do każdego elementu i zwraca tablicę o tej samej długości z wynikami.

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

Oryginał pozostaje nienaruszony:

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

filter: wybiera podzbiór

Przyjmuje predykat (funkcję zwracającą true/false). Zachowuje tylko te elementy, dla których predykat zwraca true.

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]

Łączenie obu metod

Klasyczny potok (pipeline): najpierw filtrujemy, potem mapujemy.

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

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

Spróbuj sam

Ćwiczenie#js.m6.l1.e1
Próby: 0Ładowanie...

Zdefiniuj `vat(prices, rate)`: dla podanej tablicy cen i stawki podatkowej (np. 0.22), zwraca tablicę cen powiększonych o podatek VAT. Użyj map.

Ładowanie edytora...
Pokaż wskazówkę

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

Rozwiązanie dostępne po 3 próbach

Ćwiczenie powtórzeniowe

Ćwiczenie#js.m6.l1.e2
Próby: 0Ładowanie...

Zdefiniuj `adultNames(people)`: przyjmuje tablicę obiektów { name, age } i zwraca tablicę z imionami osób, których wiek wynosi >= 18. Użyj filter + map.

Ładowanie edytora...
Pokaż wskazówkę

Łańcuch: .filter(...).map((p) => p.name)

Rozwiązanie dostępne po 3 próbach