Javascript Array reduceRight ()

Метод JavaScript Array reduceRight () виконує функцію редуктора на кожному елементі масиву та застосовує її до накопичувача.

Синтаксис reduceRight()методу:

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

Тут arr - це масив.

Параметри reduceRight ()

reduceRight()Метод приймає в:

  • зворотний виклик - функція, що виконується на кожному елементі масиву. Це приймає:
    • акумулятор - він накопичує зворотні значення зворотного виклику. Це initialValueдля першого дзвінка, якщо він наданий,
    • currentValue - поточний елемент, що передається з масиву.
  • InitialValue (необов’язково) - значення, яке буде передано callback()під час першого виклику. Якщо не вказано, останній елемент діє як накопичувач під час першого виклику і callback()не буде виконуватися на ньому.

Примітка: Виклик reduceRight()порожнього масиву без початкового значення викине TypeError.

Повернене значення з reduceRight ()

  • Повертає значення, отримане після зменшення масиву.

Примітки :

  • reduceRight() виконує задану функцію для кожного значення справа наліво.
  • reduceRight() не змінює вихідний масив.
  • Майже завжди безпечніше надавати initialValue.

Приклад 1: Сума всіх значень масиву

 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

Вихідні дані

 21 21

Приклад 2: Віднімання чисел у масиві

 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

Вихідні дані

 1330 2700

Цей приклад чітко пояснює різницю між передачею InitialValue і не передаче InitialValue.

Приклад 3: Створення складених функцій

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

Вихідні дані

 8

Ми знаємо, що склад функції - це спосіб передачі результату від однієї функції іншій функції. Виконання відбувається справа наліво, тому ми можемо скористатися цією reduceRight()функцією.

У цьому прикладі ми створили composite()функцію, яка приймає довільну кількість аргументів. Ця функція повертає іншу функцію, яка приймає initialArgта повертає це значення, зменшене, застосовуючи його до заданих функцій справа наліво.

Рекомендуємо прочитати: масив JavaScript зменшити ()

Цікаві статті...