Die JavaScript-Array-Methode reduRight () führt eine Reduzierungsfunktion für jedes Element des Arrays aus und wendet sie auf einen Akkumulator an.
Die Syntax der reduceRight()
Methode lautet:
arr.reduceRight(callback(accumulator, currentValue), initialValue)
Hier ist arr ein Array.
reduRight () Parameter
Die reduceRight()
Methode umfasst:
- Rückruf - Die Funktion, die für jedes Array-Element ausgeführt werden soll. Es dauert:
- Akkumulator - Akkumuliert die Rückgabewerte des Rückrufs. Es ist
initialValue
für den ersten Anruf, wenn geliefert, - currentValue - Das aktuelle Element, das vom Array übergeben wird.
- Akkumulator - Akkumuliert die Rückgabewerte des Rückrufs. Es ist
- initialValue (optional) - Ein Wert, der
callback()
beim ersten Aufruf übergeben wird. Wenn nicht angegeben, fungiert das letzte Element beim ersten Aufruf als Akkumulator undcallback()
wird nicht ausgeführt.
Hinweis: Der Aufruf reduceRight()
auf ein leeres Array ohne Anfangswert wird werfen TypeError
.
Rückgabewert von reduRight ()
- Gibt den Wert zurück, der sich nach dem Reduzieren des Arrays ergibt.
Anmerkungen :
reduceRight()
führt die angegebene Funktion für jeden Wert von rechts nach links aus.reduceRight()
ändert das ursprüngliche Array nicht.- Es ist fast immer sicherer zu versorgen
initialValue
.
Beispiel 1: Summe aller Werte des Arrays
const numbers = (1, 2, 3, 4, 5, 6); function sum_reducer(accumulator, currentValue) ( return accumulator + currentValue; ) let sum = numbers.reduceRight(sum_reducer); console.log(sum); // 21 // using arrow function let summation = numbers.reduceRight( (accumulator, currentValue) => accumulator + currentValue ); console.log(summation); // 21
Ausgabe
21 21
Beispiel 2: Subtrahieren von Zahlen im Array
const numbers = (50, 300, 20, 100, 1800); // subtract all numbers from last number // since 1st element is called as accumulator rather than currentValue // 1800 - 100 - 20 - 300 - 50 let difference = numbers.reduceRight( (accumulator, currentValue) => accumulator - currentValue ); console.log(difference); // 1330 const expenses = (1800, 2000, 3000, 5000, 500); const salary = 15000; // function that subtracts all array elements from given number // 15000 - 500 - 5000 - 3000 - 2000 - 1800 let remaining = expenses.reduceRight( (accumulator, currentValue) => accumulator - currentValue, salary ); console.log(remaining); // 2700
Ausgabe
1330 2700
Dieses Beispiel erklärt deutlich den Unterschied zwischen dem Übergeben eines Anfangswerts und dem Nichtübergeben eines Anfangswerts.
Beispiel 3: Zusammengesetzte Funktionen erstellen
// create composite functions const composite = (… args) => (initialArg) => args.reduceRight((acc, fn) => fn(acc), initialArg); const sqrt = (value) => Math.sqrt(value); const double = (value) => 2 * value; const newFunc = composite(sqrt, double); // ( 32 * 2 ) ** 0.5 let result = newFunc(32); console.log(result); // 8
Ausgabe
8
Wir wissen, dass die Funktionszusammensetzung die Art und Weise ist, wie das Ergebnis einer Funktion an eine andere Funktion übergeben wird. Die Ausführung erfolgt von rechts nach links, sodass wir die reduceRight()
Funktion nutzen können.
In diesem Beispiel haben wir eine composite()
Funktion erstellt, die eine beliebige Anzahl von Argumenten akzeptiert. Diese Funktion gibt eine andere Funktion initialArg
zurück, die diesen Wert reduziert und reduziert zurückgibt, indem sie von rechts nach links auf bestimmte Funktionen angewendet wird.
Empfohlene Lektüre: JavaScript Array redu ()