Кратко
СкопированоМетод массива 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]