Direkt zum Hauptinhalt springen
eLearner.app
Modul 3 · Lektion 4 von 412/32 im Kurs~10 min
Lektionen des Moduls (4/4)

Iterieren über Sammlungen

Das Manipulieren von Kollektionen bedeutet fast immer Iterieren: die Elemente nacheinander durchgehen und für jedes etwas tun. In dieser Lektion sehen wir uns die Basissyntax an; im Modul über funktionale Array-Methoden (map / filter / reduce) lernen wir, wie man dies deklarativer schreibt.

for…of für Arrays

Dies ist die Schleife, die du fast immer verwenden willst, um über ein Array zu iterieren: Sie extrahiert bei jedem Schritt den Wert.

JS
const colori = ['rosso', 'verde', 'blu'];

for (const c of colori) {
  console.log(c);
}
// 'rosso'
// 'verde'
// 'blu'

Wenn du auch den Index benötigst, verwende entries():

JS
for (const [i, c] of colori.entries()) {
  console.log(`${i}: ${c}`);
}
// '0: rosso', '1: verde', '2: blu'

for…in für Objekte — mit Vorsicht

for…in iteriert über die Schlüssel (Strings) eines Objekts:

JS
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
  console.log(`${k} = ${utente[k]}`);
}

Object.keys / values / entries

Dies ist der robuste Weg, über ein Objekt zu iterieren. Sie geben Arrays zurück und lassen sich daher hervorragend mit for…of kombinieren:

JS
const utente = { nome: 'Anna', eta: 28 };

Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]

for (const [k, v] of Object.entries(utente)) {
  console.log(`${k} → ${v}`);
}

Das klassische for

Es gibt immer noch das for „nach alter Art“. Du wirst es selten benutzen, aber es ist nützlich, wenn du eine feine Kontrolle über den Index brauchst (Elemente überspringen, rückwärts iterieren):

JS
for (let i = 0; i < colori.length; i++) {
  console.log(i, colori[i]);
}

// Al contrario
for (let i = colori.length - 1; i >= 0; i--) {
  console.log(colori[i]);
}

Probier es aus

Übung#js.m3.l4.e1
Versuche: 0Wird geladen…

Berechne für `numbers = [3, 5, 7]` die Summe aller Elemente (15), indem du mit for...of iterierst. Der letzte Ausdruck muss die Summe ergeben.

Editor wird geladen…
Hinweis anzeigen

for (const n of numbers) { sum = sum + n; }

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#js.m3.l4.e2
Versuche: 0Wird geladen…

Gib für `prices = { mela: 0.4, pera: 0.55, banana: 0.3 }` die GESAMTANZAHL der Einträge im Objekt (3) unter Verwendung von Object.keys zurück.

Editor wird geladen…
Hinweis anzeigen

Object.keys(obj) gibt ein Array zurück; .length sagt dir, wie viele Schlüssel vorhanden sind.

Lösung nach 3 Versuchen verfügbar