Tablica JavaScript redukujRight ()

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.
  • 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 i callback()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 ()

Interesujące artykuły...