Javascript Array reduRight ()

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 initialValuefür den ersten Anruf, wenn geliefert,
    • currentValue - Das aktuelle Element, das vom Array übergeben wird.
  • initialValue (optional) - Ein Wert, der callback()beim ersten Aufruf übergeben wird. Wenn nicht angegeben, fungiert das letzte Element beim ersten Aufruf als Akkumulator und callback()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 initialArgzurü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 ()

Interessante Beiträge...