Lektionen des Moduls (1/4)
map und filter
Zwei unverzichtbare Methoden: Sie transformieren ein Array in ein neues Array, ohne das Original zu verändern.
map: Transformiert jedes Element
Erhält eine Funktion, wendet sie auf jedes Element an und gibt ein Array derselben Länge mit den Ergebnissen zurück.
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']Das Original bleibt unverändert:
numeri; // [1, 2, 3, 4] ← invariatofilter: Wählt eine Teilmenge aus
Erhält ein Prädikat (eine Funktion, die true/false zurückgibt). Behält nur die Elemente, für die das Prädikat wahr ist.
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]Die beiden kombinieren
Klassische Pipeline: Filtern, dann transformieren.
const prezzi = [12, 5, 100, 30, 7];
const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]Probier es aus
Definiere `vat(prices, rate)`: Gibt für ein gegebenes Array von Zahlen und einen Steuersatz (z. B. 0.22) ein Array mit den um die Mehrwertsteuer erhöhten Preisen zurück. Verwende map.
Hinweis anzeigen
prices.map((p) => p * (1 + rate))
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Definiere `adultNames(people)`: Erhält ein Array von Objekten { name, age } und gibt das Array der Namen der Personen zurück, deren age >= 18 ist. Verwende filter + map.
Hinweis anzeigen
Kette: .filter(...).map((p) => p.name)
Lösung nach 3 Versuchen verfügbar