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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.