Iteration über Arrays
Es gibt viele verschiedene Methoden, um in JavaScript über Arrays zu loopen. Dabei ist jede Methode für etwas anderes zuständig.
forEach()
forEach()
Die forEach()
-Methode ruft für jedes Element eine Callback-Funktion auf. In der Callback-Funktion haben wir Zugriff auf drei Parameter:
cur
: Das aktuelle Elementindex
: Den Index des aktuellen Elementsarr
: Der gesamte Array
movements.forEach((movement, index, array) => {
if (movement > 0) {
console.log(`Movement ${index + 1}: You deposited ${movement}`);
} else {
console.log(`Movement ${index + 1}: You withdrew ${Math.abs(movement)}`);
}
});
Bei der forEach()
-Methode können wir den Loop nicht abbrechen oder überspringen.
map()
map()
Die map()
-Methode funktioniert ähnlich wie die forEach()
-Methode. Sie geht durch jedes Element im Array durch und führt eine bestimmte Callback-Methode aus.
Wie auch bei der forEach()
-Methode haben wir Zugriff auf:
cur
: Das aktuelle Elementindex
: Den Index des aktuellen Elementsarr
: Der gesamte Array
const movementsInEuro = [200, 450, -400, 3000, -650, -130, 70, 1300];
const euroToUsdConversionRate = 1.1;
const movementsInUsd = movementsInEuro.map(
(movement) => movement * euroToUsdConversionRate
);
filter()
filter()
Die filter()
-Methode ist dafür da, um bestimmte Elemente aus einem Array herauszufiltern.
const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];
const deposits = movements.filter((movement) => movement > 0);
const withdrawals = movements.filter((movement) => movement < 0);
reduce()
reduce()
Die reduce()
-Methode "reduziert" alle Elemente eines Arrays auf einen Wert hinab.
const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];
const balance = movements.reduce((acc, cur) => acc + cur, 0);
Die Methode erwartet zwei Argumente: Die Callback-Funktion und den Initialwert des accumulators
, hier acc
. Die Callbackmethode hat vier Argumente, die wir nutzen können:
acc
: Der Accumulator, welcher den gesamten Wert speichertcur
: Das aktuelle Elementindex
: Den Index des aktuellen Elementsarr
: Der gesamte Array
const max = movements.reduce(
(acc, cur) => (acc > cur ? acc : cur),
movements[0]
);
Zuletzt aktualisiert