Почему reduce возвращает 10 при начальном значении 4?

Результат равен 10: аккумулятор начинается с 4 и последовательно прибавляет 1, 2, 3. Без начального значения получится 6; пустой массив с начальным 4 вернёт 4.

Короткий ответ

Что ответить на собеседовании

Результат равен 10: аккумулятор начинается с 4 и последовательно прибавляет 1, 2, 3. Без начального значения получится 6; пустой массив с начальным 4 вернёт 4.

Подробный разбор

Ответ с пояснениями

Условие

Что вернёт [1,2,3].reduce((sum, x) => sum + x, 4) и почему? Сравните с вариантом без второго аргумента и с пустым массивом при наличии начального значения 4.

Ответ

Результат равен 10: аккумулятор начинается с 4 и последовательно прибавляет 1, 2, 3. Без начального значения получится 6; пустой массив с начальным 4 вернёт 4.

Промежуточные значения первого варианта: 5, 7, 10. Начальное значение — часть вычисления, а не настройка, которую reduce игнорирует. Без второго аргумента первый элемент становится аккумулятором, обработка начинается со второго. Пустой массив без начального значения бросает TypeError, поскольку брать исходный аккумулятор неоткуда.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее