Javascript polje zmanjšaRight ()

Metoda JavaScript Array reduceRight () izvede funkcijo reduktorja na vsakem elementu matrike in jo uporabi proti akumulatorju.

Sintaksa reduceRight()metode je:

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

Tu je arr matrika.

Parametri reduceRight ()

reduceRight()Metoda je v:

  • povratni klic - funkcija za izvajanje na vsakem elementu matrike. Vključuje:
    • akumulator - zbira povratne vrednosti povratnega klica. To je initialValueza prvi klic, če je na voljo,
    • currentValue - trenutni element, ki se prenaša iz polja.
  • začetna vrednost (neobvezno) - vrednost, ki bo posredovana callback()ob prvem klicu. Če ni naveden, zadnji element deluje kot akumulator prvega klica in callback()se na njem ne bo izvedel.

Opomba: Klic reduceRight()praznega polja brez začetne vrednosti bo vrgel TypeError.

Vrnjena vrednost iz reduceRight ()

  • Vrne vrednost, ki je rezultat po zmanjšanju polja.

Opombe :

  • reduceRight() izvrši dano funkcijo za vsako vrednost od desne proti levi.
  • reduceRight() ne spremeni prvotnega polja.
  • Skoraj vedno je varneje zagotoviti initialValue.

Primer 1: Vsota vseh vrednosti matrike

 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

Izhod

 21. 21.

2. primer: odštevanje števil v matriki

 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

Izhod

 1330 2700

Ta primer jasno pojasnjuje razliko med posredovanjem začetne vrednosti in nenastavitvijo začetne vrednosti.

3. primer: Ustvarite sestavljene funkcije

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

Izhod

 8.

Vemo, da je sestava funkcije način, na katerega se rezultat ene funkcije prenese na drugo funkcijo. Izvedba se zgodi od desne proti levi, zato lahko izkoristimo reduceRight()funkcijo.

V tem primeru smo ustvarili composite()funkcijo, ki sprejme poljubno število argumentov. Ta funkcija vrne drugo funkcijo, ki sprejme initialArgin vrne to vrednost, zmanjšano, tako da jo uporabi glede na dane funkcije od desne proti levi.

Priporočeno branje: Niz JavaScript JavaScript ()

Zanimive Članki...