Metoda JavaScript Array RedRight () wykonuje funkcję redukującą na każdym elemencie tablicy i stosuje ją do akumulatora.
Składnia reduceRight()metody to:
arr.reduceRight(callback(accumulator, currentValue), initialValue)
Tutaj arr jest tablicą.
RedukcjaRight () Parametry
reduceRight()Sposób odbywa się:
- callback - funkcja do wykonania na każdym elemencie tablicy. Zajmuje:
- accumulator - gromadzi wartości zwracane przez callback. Dotyczy
initialValuepierwszego połączenia, jeśli jest dostarczony, - currentValue - bieżący element przekazywany z tablicy.
- accumulator - gromadzi wartości zwracane przez callback. Dotyczy
- initialValue (opcjonalne) - Wartość, która zostanie przekazana
callback()przy pierwszym wywołaniu. Jeśli nie zostanie podany, ostatni element działa jako akumulator przy pierwszym wywołaniu icallback()nie zostanie na nim wykonany.
Uwaga: wywołanie reduceRight()pustej tablicy bez initialValue spowoduje zgłoszenie TypeError.
Wartość zwracana z redukujRight ()
- Zwraca wartość wynikową po zmniejszeniu tablicy.
Uwagi :
reduceRight()wykonuje daną funkcję dla każdej wartości od prawej do lewej.reduceRight()nie zmienia oryginalnej tablicy.- Zapewnienie prawie zawsze jest bezpieczniejsze
initialValue.
Przykład 1: Suma wszystkich wartości tablicy
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
Wynik
21 21
Przykład 2: Odejmowanie liczb w tablicy
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
Wynik
1330 2700,
Ten przykład wyraźnie wyjaśnia różnicę między przekazywaniem initialValue a nieprzekazywaniem initialValue.
Przykład 3: Tworzenie funkcji złożonych
// 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
Wynik
8
Wiemy, że kompozycja funkcji to sposób, w jaki wynik z jednej funkcji jest przekazywany do innej funkcji. Wykonanie odbywa się od prawej do lewej, więc możemy skorzystać z reduceRight()funkcji.
W tym przykładzie utworzyliśmy composite()funkcję, która przyjmuje dowolną liczbę argumentów. Ta funkcja zwraca inną funkcję, która przyjmuje initialArgi zwraca tę wartość pomniejszoną przez zastosowanie jej do danych funkcji od prawej do lewej.
Zalecana lektura: JavaScript Array redukuj ()








