Wenn du mit Arrays arbeitest, möchtest du manchmal Code für jeden Wert im Array ausführen. Das nennt man Iteration oder das Durchlaufen des Arrays in einer Schleife.
Hier sehen wir uns den Fall an, in dem du das Array dabei nicht verändern möchtest. Wie du Arrays transformierst, erfährst du stattdessen unter Konzept Array-Transformationen.
for-SchleifeDie einfachste Möglichkeit, über ein Array zu iterieren, ist eine for-Schleife, siehe Konzept for-Schleifen.
const numbers = [6.0221515, 10, 23];
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
// => 6.0221515
// => 10
// => 23
for...of-SchleifeWenn du in jeder Iteration direkt mit dem Wert arbeiten möchtest und den Index überhaupt nicht brauchst, kannst du eine for...of-Schleife verwenden.
for...of funktioniert wie die oben gezeigte einfache for-Schleife, aber statt dich mit dem Index als Variable in der Schleife befassen zu müssen, wird dir der Wert direkt bereitgestellt.
const numbers = [6.0221515, 10, 23];
// Because re-assigning number inside the loop will be very
// confusing, disallowing that via const is preferable.
for (const number of numbers) {
console.log(number);
}
// => 6.0221515
// => 10
// => 23
Genau wie bei normalen for-Schleifen kannst du continue verwenden, um die aktuelle Iteration zu beenden, und break, um die Ausführung der Schleife vollständig zu stoppen.
forEach-MethodeJedes Array enthält eine forEach-Methode, mit der du über die Elemente im Array iterieren kannst.
forEach akzeptiert einen Callback als Parameter.
Die Callback-Funktion wird einmal für jedes Element im Array aufgerufen.
Das aktuelle Element, sein Index und das vollständige Array werden dem Callback als Argumente übergeben.
Oft wird nur das aktuelle Element oder der Index verwendet.
const numbers = [6.0221515, 10, 23];
numbers.forEach((number, index) => console.log(number, index));
// => 6.0221515 0
// => 10 1
// => 23 2
Es gibt keine Möglichkeit, die Iteration zu stoppen, sobald die forEach-Schleife gestartet wurde.
Die Anweisungen break und continue gibt es in diesem Zusammenhang nicht.
Als angehende Magierin muss Elyse ihr Kartendeck auf viele verschiedene Arten analysieren. Um es einfach zu halten, benutzt sie nur Karten mit Werten von 1 bis 10.
Elyse möchte wissen, wie viele Karten eines bestimmten Typs sie in ihrem Deck hat.
Schreibe eine Funktion cardTypeCheck, die zwei Parameter entgegennimmt: ein Array mit Karten (Elyses Deck) und den Typ der Karte, die gezählt werden soll.
Die Funktion sollte forEach verwenden und die Anzahl der Karten des angegebenen Typs im Deck zurückgeben.
const cardType = 3;
cardTypeCheck([1, 2, 3, 4], cardType);
// => 1
Für einen weiteren Trick muss Elyse wissen, wie viele ungerade oder gerade Karten in ihrem Deck sind.
Implementiere eine Funktion determineOddEvenCards, die zwei Parameter entgegennimmt: ein Array mit Karten (Elyses Deck) und einen booleschen Wert (wahr entspricht „gerade" und falsch entspricht „ungerade").
Diese Funktion sollte eine einzelne Zahl zurückgeben: die Anzahl der ungeraden oder geraden Karten im Deck (je nach Wert des zweiten Arguments).
Zum Üben verwende diesmal eine for...of-Schleife in der Implementierung der Funktion.
determineOddEvenCards([1, 2, 3, 1, 5, 6], true);
// => 2
determineOddEvenCards([1, 2, 3, 1, 5, 6], false);
// => 4
Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.