Первый результат — 16: начальные 10 складываются с 1, 2 и 3. Для пустого массива возвращается initialValue, то есть 10.
Как initialValue влияет на результат reduce
Первый результат — 16: начальные 10 складываются с 1, 2 и 3. Для пустого массива возвращается initialValue, то есть 10.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что выведет console.log([1, 2, 3].reduce((acc, value) => acc + value, 10))? Что вернёт такая же операция для пустого массива?
Ответ
Первый результат — 16: начальные 10 складываются с 1, 2 и 3. Для пустого массива возвращается initialValue, то есть 10.
InitialValue не заменяет первый элемент и не пропускается при наличии данных. Без него первый элемент становится начальным аккумулятором, а callback начинает со следующего. Для пустого массива reduce без initialValue выбрасывает ошибку. Явное начальное значение делает такой граничный случай определённым.