Javascript Array reduceRight ()

JavaScript Array reduceRight () -metoden kör en reduceringsfunktion på varje element i matrisen och tillämpar den på en ackumulator.

Syntaxen för reduceRight()metoden är:

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

Här är arr en matris.

reducera höger () parametrar

Den reduceRight()metod tar in:

  • callback - Funktionen att utföra på varje arrayelement. Det tar in:
    • ackumulator - Den ackumulerar återuppringningsvärdena. Det är initialValueför det första samtalet om det tillhandahålls,
    • currentValue - Det aktuella elementet som skickas från matrisen.
  • initialValue (valfritt) - Ett värde som skickas till callback()vid första samtalet. Om det inte tillhandahålls fungerar det sista elementet som ackumulator vid det första samtalet och callback()körs inte på det.

Obs! Att anropa reduceRight()en tom array utan initialValue kommer att kasta TypeError.

Returvärde från reduceRight ()

  • Returnerar värdet som resulterar efter att matrisen har minskats.

Anmärkningar :

  • reduceRight() kör den givna funktionen för varje värde från höger till vänster.
  • reduceRight() ändrar inte den ursprungliga matrisen.
  • Det är nästan alltid säkrare att tillhandahålla initialValue.

Exempel 1: Summan av alla värden i matrisen

 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

Produktion

 21 21

Exempel 2: Subtrahera siffror i matris

 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

Produktion

 1330 2700

Detta exempel förklarar tydligt skillnaden mellan att skicka en initialvärde och att inte skicka en initialvärde.

Exempel 3: Skapa kompositfunktioner

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

Produktion

 8

Vi vet att funktionssammansättning är det sätt på vilket resultatet från en funktion överförs till en annan funktion. Körningen sker från höger till vänster, så vi kan dra nytta av reduceRight()funktionen.

I det här exemplet har vi skapat en composite()funktion som tar in ett godtyckligt antal argument. Denna funktion returnerar en annan funktion som tar in initialArgoch returnerar detta värde reducerat genom att använda det mot givna funktioner från höger till vänster.

Rekommenderad läsning: JavaScript Array reducera ()

Intressanta artiklar...