Метод 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 и currentValueaccumulator - это аккумулятор, который хранит промежуточный результат. currentValue - это текущий элемент массива. Функция обратного вызова может также принимать два дополнительных аргумента: index и arrayindex - это индекс текущего элемента массива, а array - это исходный массив.

Функция обратного вызова должна возвращать новое значение для аккумулятора. Это значение будет передано как accumulator в следующую итерацию. На последней итерации метод reduce() возвращает итоговое значение аккумулятора. Если начальное значение аккумулятора не указано, то метод reduce() начинает перебор элементов массива с 2-го элемента, используя первый элемент в качестве начального значения аккумулятора. Если массив пустой и начальное значение аккумулятора не указано, то метод reduce() вызовет ошибку.


Назад