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.
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.
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.
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.
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.
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.
<!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
- Gib die drei Titel aus. Prüf, dass
rainvorn liegt - Gib jeden Index aus und prüf, dass
rainauf 0 steht - Speichere das Ergebnis des Aufrufs und sieh
undefined, während die Länge 3 bleibt - Kehr bei
tidesofort zurück und prüf, dassdusknoch erscheint - Zähl bei jedem Besuch 1 auf
seenund prüf, dass 3 herauskommt - Lies die Zeile auf der Seite, setze
tideauffogund 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
breakin die Funktion, das ist ein Syntaxfehler - Glaub nicht, dass
returnnachtideauchduskstoppt - Lies den zweiten Parameter nicht als Titel
- Such auf dieser Seite nicht nach einem Wert
Das nimmst du mit
forEachbesucht 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 returnin der Funktion überspringt nur diesen Besuch- Die nächste Seite sucht nach einem Wert
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 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