Direkt zum Hauptinhalt springen
eLearner.app
Modul 6 · Lektion 1 von 421/32 im Kurs~10 min
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.

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

Das Original bleibt unverändert:

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

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

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]

Die beiden kombinieren

Klassische Pipeline: Filtern, dann transformieren.

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

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

Probier es aus

Übung#js.m6.l1.e1
Versuche: 0Wird geladen…

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.

Editor wird geladen…
Hinweis anzeigen

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

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#js.m6.l1.e2
Versuche: 0Wird geladen…

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.

Editor wird geladen…
Hinweis anzeigen

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

Lösung nach 3 Versuchen verfügbar