Javascript Array reduceRight ()

De JavaScript-methode Array reduceRight () voert een reducer-functie uit op elk element van de array en past deze toe op een accumulator.

De syntaxis van de reduceRight()methode is:

 arr.reduceRight(callback(accumulator, currentValue), initialValue)

Hier is arr een array.

reduceRight () Parameters

De reduceRight()methode omvat:

  • callback - De functie die op elk array-element moet worden uitgevoerd. Het duurt:
    • accumulator - Het verzamelt de retourwaarden van de callback. Het is initialValuevoor de eerste oproep indien aanwezig,
    • currentValue - Het huidige element dat wordt doorgegeven vanuit de array.
  • initialValue (optioneel) - Een waarde die callback()bij de eerste aanroep wordt doorgegeven . Indien niet opgegeven, fungeert het laatste element als de accumulator bij de eerste aanroep en callback()wordt het niet uitgevoerd.

Opmerking: het aanroepen reduceRight()van een lege array zonder initialValue zal gooien TypeError.

Retourwaarde van reduceRight ()

  • Retourneert de waarde die resulteert na het verkleinen van de array.

Opmerkingen :

  • reduceRight() voert de gegeven functie uit voor elke waarde van rechts naar links.
  • reduceRight() verandert de originele array niet.
  • Het is bijna altijd veiliger om te voorzien initialValue.

Voorbeeld 1: som van alle waarden van matrix

 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

Uitvoer

 21 21

Voorbeeld 2: Getallen in Array aftrekken

 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

Uitvoer

 1330 2700

Dit voorbeeld legt duidelijk het verschil uit tussen het doorgeven van een initialValue en het niet doorgeven van een initialValue.

Voorbeeld 3: samengestelde functies maken

 // 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

Uitvoer

 8

We weten dat functiesamenstelling de manier is waarop het resultaat van de ene functie wordt doorgegeven aan een andere functie. De uitvoering gebeurt van rechts naar links, dus we kunnen profiteren van de reduceRight()functie.

In dit voorbeeld hebben we een composite()functie gemaakt die een willekeurig aantal argumenten accepteert. Deze functie retourneert een andere functie die initialArgdeze waarde opneemt en retourneert, verminderd door deze van rechts naar links toe te passen op gegeven functies.

Aanbevolen literatuur: JavaScript-array reduceren ()

Interessante artikelen...