Будут два вывода: сначала 1 2, затем undefined 3. Без начального значения reduce берёт первый элемент как аккумулятор, а callback ничего не возвращает.
Что выведет console.log при работе метода reduce
Будут два вывода: сначала 1 2, затем undefined 3. Без начального значения reduce берёт первый элемент как аккумулятор, а callback ничего не возвращает.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой вывод появится в консоли при запуске следующего кода:
[1, 2, 3].reduce((a, b) => { console.log(a, b); });
Ответ
Будут два вывода: сначала 1 2, затем undefined 3. Без начального значения reduce берёт первый элемент как аккумулятор, а callback ничего не возвращает.
На первом шаге a = 1 и b = 2. После console.log функция с фигурными скобками завершается без return, то есть возвращает undefined — это становится аккумулятором следующего шага. Поэтому второй вызов получает undefined и 3. Итог самого reduce также undefined. Для суммирования нужно явно вернуть a + b из callback.