„Javascript“ masyvas reducRight ()

Metodas „JavaScript Array reducRight ()“ atlieka kiekvieno masyvo elemento reduktoriaus funkciją ir taiko ją prieš akumuliatorių.

reduceRight()Metodo sintaksė yra tokia:

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

Čia arr yra masyvas.

sumažinti „RightRight“ () parametrus

reduceRight()Metodas trunka:

  • atgalinis skambutis - funkcija, kurią reikia atlikti kiekvienam masyvo elementui. Tai užima:
    • akumuliatorius - jis kaupia atgalinio ryšio grąžinimo vertes. Tai yra initialValuepirmasis skambutis, jei tiekiamas,
    • currentValue - dabartinis elementas, perduodamas iš masyvo.
  • pradinė vertė (neprivaloma) - vertė, kuri bus perduota callback()per pirmąjį skambutį. Jei nepateikiama, paskutinis elementas veikia kaip kaupiklis per pirmąjį skambutį ir callback()jo nevykdys.

Pastaba: Kreipiamės reduceRight()į tuščias masyvas be initialValue bus mesti TypeError.

Grąžinimo vertė iš „reducRight“ ()

  • Grąžina vertę, gautą sumažinus masyvą.

Pastabos :

  • reduceRight() vykdo nurodytą kiekvienos vertės funkciją iš dešinės į kairę.
  • reduceRight() nekeičia pradinio masyvo.
  • Beveik visada saugiau pateikti initialValue.

1 pavyzdys: Visų masyvo verčių suma

 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

Rezultatas

 21 21

2 pavyzdys: masyvo skaičių atimimas

 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

Rezultatas

 1330 2700

Šis pavyzdys aiškiai paaiškina skirtumą tarp pradinės vertės išlaikymo ir pradinės vertės neperdavimo.

3 pavyzdys: sukurkite sudėtines funkcijas

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

Rezultatas

 8

Mes žinome, kad funkcijos sudėtis yra būdas, kuriuo vienos funkcijos rezultatas perduodamas kitai funkcijai. Vykdymas vyksta iš dešinės į kairę, todėl galime pasinaudoti reduceRight()funkcija.

Šiame pavyzdyje mes sukūrėme composite()funkciją, kuri pateikia savavališkai daug argumentų. Ši funkcija grąžina kitą funkciją, kuri ima initialArgir grąžina šią vertę, sumažintą taikant ją nuo nurodytų funkcijų iš dešinės į kairę.

Rekomenduojamas skaitymas: „ Java“ masyvo mažinimas ()

Įdomios straipsniai...