Метод reduce()
в JavaScript используется для свертки (агрегации) элементов массива в одно значение. Он применяет функцию обратного вызова к каждому элементу массива, последовательно, слева направо, и возвращает одно итоговое значение.
Синтаксис метода reduce()
выглядит следующим образом:
array.reduce(function (accumulator, currentValue, index, array) {
// функция обратного вызова
}, initialValue)
Здесь array
- массив, accumulator
- аккумулятор, currentValue
- текущее значение из массива, index
- индекс текущего элемента, array
- исходный массив. Функция обратного вызова должна возвращать новое значение для аккумулятора на каждой итерации. initialValue
- начальное значение аккумулятора, которое может быть опущено. Если начальное значение не указано, то первый элемент массива будет использован в качестве начального значения аккумулятора, а перебор элементов начнется со второго.
Пример использования метода reduce()
:
const numbers = [1, 2, 3, 4, 5]
const sum = numbers.reduce(function (accumulator, currentValue) {
return accumulator + currentValue
})
console.log(sum) // 15
В этом примере мы находим сумму элементов массива numbers
с помощью метода reduce()
. Начальное значение аккумулятора не указано, поэтому в качестве начального значения используется первый элемент массива. На каждой итерации функция обратного вызова складывает текущий элемент массива с аккумулятором и возвращает новое значение для аккумулятора.
Метод reduce()
принимает функцию обратного вызова и, опционально, начальное значение аккумулятора. Функция обратного вызова принимает два аргумента: accumulator
и currentValue
. accumulator
- это аккумулятор, который хранит промежуточный результат. currentValue
- это текущий элемент массива. Функция обратного вызова может также принимать два дополнительных аргумента: index
и array
. index
- это индекс текущего элемента массива, а array
- это исходный массив.
Функция обратного вызова должна возвращать новое значение для аккумулятора. Это значение будет передано как accumulator
в следующую итерацию. На последней итерации метод reduce()
возвращает итоговое значение аккумулятора. Если начальное значение аккумулятора не указано, то метод reduce()
начинает перебор элементов массива с 2-го элемента, используя первый элемент в качестве начального значения аккумулятора. Если массив пустой и начальное значение аккумулятора не указано, то метод reduce()
вызовет ошибку.