Javascript Array reduceRight ()

JavaScript Array reducRight () -metoden udfører en reduceringsfunktion på hvert element i arrayet og anvender den på en akkumulator.

Metodens syntaks reduceRight()er:

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

Her er arr en matrix.

reducere højre () parametre

Den reduceRight()metode tager i:

  • callback - Funktionen, der skal udføres på hvert array-element. Det tager i:
    • akkumulator - Det akkumulerer tilbagekaldets returværdier. Det er initialValuetil det første opkald, hvis det leveres,
    • currentValue - Det aktuelle element, der sendes fra arrayet.
  • initialValue (valgfri) - En værdi, der overføres til callback()ved første opkald. Hvis det ikke er angivet, fungerer det sidste element som akkumulator ved det første opkald og callback()udføres ikke på det.

Bemærk: At kalde reduceRight()på et tomt array uden initialValue vil kaste TypeError.

Returværdi fra reducRight ()

  • Returnerer den resulterende værdi efter reduktion af arrayet.

Bemærkninger :

  • reduceRight() udfører den givne funktion for hver værdi fra højre til venstre.
  • reduceRight() ændrer ikke den oprindelige matrix.
  • Det er næsten altid sikrere at levere initialValue.

Eksempel 1: Summen af ​​alle værdier af 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

Produktion

 21 21

Eksempel 2: Fratrækning af tal i matrix

 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

Dette eksempel forklarer tydeligt forskellen mellem at sende en initialværdi og ikke at passere en initialværdi.

Eksempel 3: Opret sammensatte funktioner

 // 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 ved, at funktionssammensætning er den måde, hvorpå resultatet fra en funktion overføres til en anden funktion. Udførelsen sker fra højre mod venstre, så vi kan drage fordel af reduceRight()funktionen.

I dette eksempel har vi oprettet en composite()funktion, der optager et vilkårligt antal argumenter. Denne funktion returnerer en anden funktion, der tager ind initialArgog returnerer denne værdi reduceret ved at anvende den på givne funktioner fra højre til venstre.

Anbefalet læsning: JavaScript Array reducer ()

Interessante artikler...