Metóda JavaScript Array reduRight () vykoná funkciu redukcie na každom prvku poľa a použije ju proti akumulátoru.
Syntax reduceRight()
metódy je:
arr.reduceRight(callback(accumulator, currentValue), initialValue)
Tu je arr pole.
Parametre reduRight ()
reduceRight()
Metóda berie v:
- spätné volanie - funkcia, ktorá sa má vykonať na každom prvku poľa. Trvá to:
- akumulátor - akumuluje spätné hodnoty spätného volania. Je to
initialValue
pre prvý hovor, ak je dodaný, - currentValue - aktuálny prvok odovzdávaný z poľa.
- akumulátor - akumuluje spätné hodnoty spätného volania. Je to
- initialValue (voliteľné) - hodnota, ktorá sa odovzdá
callback()
pri prvom volaní. Ak nie je uvedený, posledný prvok slúži ako akumulátor prvého hovoru acallback()
nebude ho vykonávať.
Poznámka: Volanie reduceRight()
na prázdne pole bez initialValue vyvolá TypeError
.
Vrátiť hodnotu z reduRight ()
- Vráti hodnotu výslednú po zmenšení poľa.
Poznámky :
reduceRight()
vykoná danú funkciu pre každú hodnotu sprava doľava.reduceRight()
nezmení pôvodné pole.- Poskytovanie je takmer vždy bezpečnejšie
initialValue
.
Príklad 1: Súčet všetkých hodnôt poľa
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
Výkon
21 21
Príklad 2: Odčítanie čísel v poli
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
Výkon
1330 2700
Tento príklad jasne vysvetľuje rozdiel medzi odovzdaním initialValue a neprejdením initialValue.
Príklad 3: Vytvorenie zložených funkcií
// 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
Výkon
8
Vieme, že zloženie funkcie je spôsob, akým sa výsledok z jednej funkcie odovzdáva inej funkcii. Vykonanie sa deje sprava doľava, aby sme mohli využiť túto reduceRight()
funkciu.
V tomto príklade sme vytvorili composite()
funkciu, ktorá prijíma ľubovoľný počet argumentov. Táto funkcia vracia inú funkciu, ktorá sa ujme initialArg
a vráti túto hodnotu zníženú jej použitím proti daným funkciám sprava doľava.
Odporúčané čítanie: JavaScript pole zmenšiť ()