Newsletter

JavaScript reduce(): so funktioniert die Array-Methode

JavaScript reduce(): so funktioniert die Array-Methode
In diesem Artikel erkläre ich, wie du die Methode JavaScript reduce einsetzt, mit Beispielen dafür, wie sie arbeitet und wann sie sich lohnt.
Die JavaScript-Methode reduce wendet eine Funktion auf jedes Element eines Arrays an, um das Array auf einen einzigen Wert zu reduzieren.
Ein Beispiel:

javascript
let result = array.reduce((acc, v, i, a) => {
// gibt den neuen Wert an die Variable zurück 
}, initVal);

// result - der einzelne Wert, der zurückgegeben wird.
// array - das Array, auf dem die reduce-Funktion läuft.
// acc - der Akkumulator, der alle zurückgegebenen Werte sammelt.
// v - der aktuell verarbeitete Wert
// i - der Index des aktuell verarbeiteten Werts.
// a - das ursprüngliche Array
// initVal - ein optional angegebener Startwert.
// Wenn kein Startwert angegeben ist,
// wird Element 0 als Startwert verwendet.

Die JavaScript-Methode reduce lässt sich wie eine for-Schleife denken, die eigens dafür da ist, aus den Werten eines Arrays etwas Neues zu bauen. Sieh dir dieses Beispiel an.

php
var array = [11, 12, 13, 14];
var sum = 0;
for(var i = 0; i  < array.length; i++) {
      sum += array[i];
 }

// sum = 50

Der Code oben soll die Summe aller Werte unseres Arrays finden. Das funktioniert, aber dasselbe Ergebnis geht auch einfacher.

Schreiben wir die Funktion mit der JavaScript-Methode reduce() um.

javascript
let array = [11, 12, 13, 14];
let sum = array.reduce((bcc, v) => bcc + v);
// sum = 50

Gleiches Ergebnis, ganz ohne Schleife.

Die Variable bcc hält unser Zwischenergebnis. Während reduce() durch das Array läuft, wächst der Wert von bcc, bis die Funktion durch ist.

Erinnerst du dich, dass wir einen optionalen Startwert übergeben können? Das ist schnell eingerichtet. Wir nehmen dasselbe Beispiel wie eben: Wir addieren unser Array, diesmal aber mit einem Startwert von 250.

Wie sieht es aus, wenn wir bei 250 anfangen? Das Beispiel unten zeigt es.

javascript
let array = [11, 12, 13, 14];
let sum = array.reduce((bcc, v) => bcc + v, 250);

Wie du siehst, ist der Code oben fast identisch mit dem vorigen Beispiel. Geändert hat sich nur das zweite Argument nach unserem Callback: Ich habe die Zahl 250 als Startpunkt übergeben. Läuft die Funktion jetzt, ergibt die Summe 300.

Ich hoffe, das hilft dir weiter. Hier gibt es noch mehr Artikel rund um JavaScript und besonders um JavaScript-Arrays, zum Beispiel dazu, wie du zwei JavaScript-Arrays zusammenführst.

JavaScript

Damien Flandrin Webentwickler seit 2010, Gründer von Gekkode und Email Impact. Jeder Artikel wird vor der Veröffentlichung an einem echten Projekt getestet. Kontakt
Newsletter

Neue Tests, Tutorials und Projekte, per E-Mail.

Reproduzierbare Tests, versionierter Code, datierte Ergebnisse. Niemals Spam.