Кратко
СкопированоМетод массива reduce работает так же, как и метод reduce. Единственные отличия: reduce перебирает элементы слева направо, а reduce — справа налево, а также значение для второго аргумента; в методе reduce по умолчанию будет последний элемент, а для reduce — первый.
Пример
СкопированоНаходим сумму элементов:
const nums = [1, 2, 3, 4]const sum = nums.reduceRight((currentSum, currentNumber) => { return currentSum + currentNumber}, 0)// 10
const nums = [1, 2, 3, 4]
const sum = nums.reduceRight((currentSum, currentNumber) => {
return currentSum + currentNumber
}, 0)
// 10
Можно сократить данную запись:
const nums = [1, 2, 3, 4]const sum = nums.reduceRight((currentSum, currentNumber) =>currentSum += currentNumber)// 10
const nums = [1, 2, 3, 4]
const sum = nums.reduceRight((currentSum, currentNumber) =>
currentSum += currentNumber)
// 10
Создаём двумерный массив и преобразуем его в одномерный массив:
const numsArrays = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]const nums = numsArrays.reduceRight((acc, cur) => { return acc.concat(cur)}, [])// [7, 8, 9, 4, 5, 6, 1, 2, 3]
const numsArrays = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
const nums = numsArrays.reduceRight((acc, cur) => {
return acc.concat(cur)
}, [])
// [7, 8, 9, 4, 5, 6, 1, 2, 3]