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
initialValue
voor de eerste oproep indien aanwezig, - currentValue - Het huidige element dat wordt doorgegeven vanuit de array.
- accumulator - Het verzamelt de retourwaarden van de callback. Het is
- 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 encallback()
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 initialArg
deze waarde opneemt en retourneert, verminderd door deze van rechts naar links toe te passen op gegeven functies.
Aanbevolen literatuur: JavaScript-array reduceren ()