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.
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():
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:
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:
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):
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
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.
Hinweis anzeigen
for (const n of numbers) { sum = sum + n; }
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
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.
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