Lädt...

Arrays durchlaufen

In songs liegen rain, tide und dusk, und die Anzahl bleibt auf dieser Seite eingefroren, weil forEach nur besucht und die Liste nicht wie im vorigen Kapitel länger oder kürzer macht.

Die Länge bleibt liegen

Diesmal ist der Gang ein Methodenaufruf, und den Index bekommst du dazu, anders als bei for...of, das nur den Wert liefert. Es kommt kein Titel hinten dazu, und es fällt auch keiner aus der Liste.

Die Funktion, die du übergibst

Du übergibst eine Funktion, die je Lied einmal läuft, und die Karte darunter ist der Vertrag dieser Seite.

📊 Was forEach dir gibt

Stück Wann du es bekommst Es ist nicht
erstes Argument bei jedem Besuch die Länge
zweites Argument nur wenn du es benennst Pflicht
Ergebnis des Aufrufs wenn forEach fertig ist ein neues Array
length danach wenn du songs.length liest vom Besuch verändert

Das Lied ist das erste Argument und der Index das zweite, das du weglassen darfst.

Reihenfolge in der Konsole

Gib jeden Titel aus. Zuerst kommt rain, dann tide, zuletzt dusk.

Jeden Titel ausgeben

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title) {
console.log(title);
});

Drei Zeilen erscheinen, von vorn nach hinten durch das Array. Die drei Zeichenketten sitzen noch in denselben Fächern.

Index neben dem Titel

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title, i) {
console.log(i);
console.log(title);
});

Null gehört zu rain, zwei gehört zu dusk, und tide sitzt dazwischen auf eins.

Der Aufruf liefert undefined

javascript
let songs = ["rain", "tide", "dusk"];
let result = songs.forEach(function (title) {
console.log(title);
});
console.log(result);
console.log(songs.length);

Leg den Aufruf in eine Variable und gib sie aus, dann siehst du undefined, also weder einen Titel noch eine Länge. Die Ausgabe von length bleibt 3.

return bricht den Gang nicht ab

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title) {
if (title === "tide") {
return;
}
console.log(title);
});

Ist der Titel tide und du kehrst sofort zurück, fehlt diese Zeile. Der Gang läuft weiter, und dusk erscheint trotzdem.

Zähl die Besuche selbst

javascript
let songs = ["rain", "tide", "dusk"];
let seen = 0;
songs.forEach(function (title) {
seen = seen + 1;
});
console.log(seen);
console.log(songs.length);

Dein Zähler landet auf 3 und length auch, aber die Summe hast du selbst geführt, der Aufruf hat sie dir nicht zurückgegeben.

Titel im Absatz

Bau eine Zeichenkette mit einem Leerzeichen zwischen den Titeln und schreib sie in den Absatz. Die Länge bleibt aus der Zeile draußen.

Seitendemo — Titel in einer Zeile

html
<!DOCTYPE html>
<html>
<head>
<title>array-iteration — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let songs = ["rain", "tide", "dusk"];
let line = "";
songs.forEach(function (title) {
if (line !== "") {
line = line + " ";
}
line = line + title;
});
let box = document.getElementById("line");
box.textContent = line;
</script>
</body>
</html>

Die Zeile zeigt die drei Titel mit Leerzeichen, und wenn du tide in fog änderst und neu lädst, wechselt das mittlere Wort. Der Besuch deckt weiter drei Titel ab.

Geh selbst entlang

  1. Gib die drei Titel aus. Prüf, dass rain vorn liegt
  2. Gib jeden Index aus und prüf, dass rain auf 0 steht
  3. Speichere das Ergebnis des Aufrufs und sieh undefined, während die Länge 3 bleibt
  4. Kehr bei tide sofort zurück und prüf, dass dusk noch erscheint
  5. Zähl bei jedem Besuch 1 auf seen und prüf, dass 3 herauskommt
  6. Lies die Zeile auf der Seite, setze tide auf fog und lade neu

Leicht falsch gelesen

  • Erwarte nicht, dass der Aufruf den letzten Titel zurückgibt. Zurück kommt kein Lied
  • Erwarte nicht, dass der Aufruf die Länge zurückgibt
  • Schreib kein break in die Funktion, das ist ein Syntaxfehler
  • Glaub nicht, dass return nach tide auch dusk stoppt
  • Lies den zweiten Parameter nicht als Titel
  • Such auf dieser Seite nicht nach einem Wert

Das nimmst du mit

  • forEach besucht jeden Eintrag von vorn nach hinten, und der erste Parameter ist der Eintrag
  • Der zweite Parameter ist der Index
  • Das eigene Ergebnis des Aufrufs ist undefined
  • return in der Funktion überspringt nur diesen Besuch
  • Die nächste Seite sucht nach einem Wert

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
8
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt