Метод 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() вызовет ошибку.