Вебсправочник
Справочник JavaScript

Array.reduce(): свёртка с начальным значением

Метод reduce последовательно превращает элементы массива в одно накопленное значение, например сумму.

Назначение

Метод reduce последовательно превращает элементы массива в одно накопленное значение, например сумму.

Как это работает

Функция получает аккумулятор и очередной элемент, затем возвращает следующий аккумулятор. Явное начальное значение делает тип результата понятнее и задаёт поведение для пустого массива.

Пример

const sum=values=>values.reduce((total,value)=>total+value,0);
console.assert(sum([3,5,7])===15);
console.assert(sum([])===0);
console.assert(sum([-2,5])===3);

Что должно получиться

Начальный ноль обеспечивает ожидаемую сумму даже для пустого массива. Аккумулятор на каждом шаге остаётся числом, а исходные значения не изменяются.

Граница применения и частая ошибка

Без начального значения reduce на пустом массиве выбросит ошибку. Не используйте сложную свёртку там, где обычный цикл проще объясняет несколько независимых действий.

Самостоятельная проверка

Проверьте сумму пустого списка и списка с отрицательными числами. Затем посчитайте суммарную длину строк, сохранив числовой аккумулятор с начальным нулём.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.