JS метод Array.reduceRight()
Опис
Метод reduceRight() надає можливість об'єднати елементи масиву в одне значення, ітеруючись по масиву з права на ліво. Тобто він працює в зворотному порядку відносно традиційного методу reduce(). Він виконує функцію callbackFn для кожного елемента масиву, починаючи з останнього і йдучи до першого, накопичуючи результат. Важливо відзначити, що callbackFn викликається лише для тих індексів масиву, які мають визначені значення. В розріджених масивах пусті індекси будуть пропущені.
На відміну від деяких інших ітераційних методів, reduceRight() не приймає аргумент thisArg. Замість цього, контекст this для callbackFn завжди буде undefined. Якщо callbackFn не виконується в строгому режимі, то undefined заміщується globalThis.
Метод reduceRight() не змінює оригінальний масив. Однак функція, передана як callbackFn, може це робити. Також слід враховувати:
callbackFnне буде взаємодіяти з елементами, доданими після того, якreduceRight()було викликано.- Жодні зміни в уже оброблених індексах не спричинять новий виклик
callbackFn. - Якщо елемент масиву, що ще не був відвіданий, змінюється
callbackFn, його значення буде таким, яким воно було під час його обробки. Видалені елементи не будуть відвідані.
Розглянемо приклад:
let numbers = [1, 2, 3, 4];
let result = numbers.reduceRight((accumulator, currentValue) => accumulator - currentValue);
console.log(result); // Output: -2
У цьому прикладі ми віднімаємо числа з масиву починаючи з кінця: 4−3−2−1=−24−3−2−1=−2. Таким чином, результатом виконання коду буде -2.
- Порада
-
При використанні методу
автор: BondreduceRight()варто мати на увазі, що він може бути корисним для обробки масивів, які зберігають дані в зворотньому порядку, наприклад, масивів дат або записів журналу. Ви можете використовувати методreduceRight()для зведення масиву до одного значення, яке представляє сумарну або агреговану інформацію. - Нотатка
-
Метод
автор: BondreduceRight()працює аналогічно методуreduce(), але ітерація починається з останнього елемента масиву і рухається до першого. Це особливо корисно, коли ви хочете застосувати функцію аккумулятора у зворотньому порядку. - Нотатка
-
Як і метод
автор: Bondreduce(), функція аккумулятора, яку ви передаєте методуreduceRight(), приймає чотири аргументи: аккумулятор, поточний елемент масиву, поточний індекс та сам масив. Ви можете використовувати ці аргументи для створення складних функцій обробки масиву. - Нотатка
-
Виклик 'reduceRight()' на пустому масиві без початкового значення призводить до виникнення помилки 'TypeError'.
автор: Bond - Нотатка
-
Метод
автор: BondreduceRight()є універсальним. Він вимагає, щоб значенняthisмістило властивістьlengthі властивості з цілочисельними ключами.
Синтаксис
reduceRight(callbackFn)
reduceRight(callbackFn, initialValue)
Параметри
callbackFn-
Функція, яку потрібно виконати для кожного елемента масиву. Її повернений результат стає значенням параметра-накопичувача (
accumulator) при наступному виклику зворотної функції (callbackFn).Функція
callbackFnвикликається з наступними аргументами:accumulator: Значення, отримане в результаті попереднього викликуcallbackFn. При першому виклику це будеinitialValue, якщо вказано, в іншому випадку - значення останнього елемента масиву.currentValue: Поточний елемент, який обробляється у масиві.index: Індекс поточного елемента, який обробляється в масиві.array: Масив, на якому було викликаноreduceRight().
initialValue-
Значення, що служить аккумулятором (
автор: Bondaccumulator) під час ініціалізації зворотнього виклику (callbackFn). У випадку відсутностіinitialValue, буде використаний останній елемент масиву (і буде виключений з обчислень).
Повернення
value-
Значення, яке отримано в ході редукції масиву.
автор: Bond
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 3 | 3 | 1 | 10.5 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 37 | 18 | 4 | 3.2 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Як працює reduceRight() без початкового значення.
[0, 1, 2, 3, 4].reduceRight(
(accumulator, currentValue, index, array) => accumulator + currentValue,
);
Як працює reduceRight() з початковим значенням.
[0, 1, 2, 3, 4].reduceRight(
(accumulator, currentValue, index, array) => accumulator + currentValue,
10,
);
Підрахувати суму всіх значень в масиві.
const sum = [0, 1, 2, 3].reduceRight((a, b) => a + b);
// 6
Відмінності між методами reduce() і reduceRight().
const a = ["1", "2", "3", "4", "5"];
const left = a.reduce((prev, cur) => prev + cur);
const right = a.reduceRight((prev, cur) => prev + cur);
console.log(left); // "12345"
console.log(right); // "54321"
Цей приклад демонструє використання методу reduceRight() для об'єднання підмасивів в один масив. Оригінальні підмасиви [[0, 1], [2, 3], [4, 5]] будуть об'єднані у масив [4, 5, 2, 3, 0, 1].
Коментарі
Коментарів ще немає — будьте першим!