Какой результат будет выведен в консоль (пример 69)

Возникнет TypeError до console.log(array2): forEach возвращает undefined, а у undefined нельзя вызвать filter. Значения callback forEach не собираются в массив.

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

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

Возникнет TypeError до console.log(array2): forEach возвращает undefined, а у undefined нельзя вызвать filter. Значения callback forEach не собираются в массив.

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

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

Условие

Определите, что отобразится в консоли после выполнения следующего кода:

const array = [1,2,3];

const array2 = array.forEach(item => item * 2).filter(item => item > 2);
console.log(array2) // ?

Ответ

Возникнет TypeError до console.log(array2): forEach возвращает undefined, а у undefined нельзя вызвать filter. Значения callback forEach не собираются в массив.

Исправление:

const array2 = array.map(item => item * 2).filter(item => item > 2);
console.log(array2); // [4, 6]

map создаёт массив [2,4,6], затем filter оставляет элементы строго больше двух. Исходный array не меняется. forEach предназначен для побочных действий над элементами и всегда возвращает undefined; арифметическое выражение в его callback само по себе не обновляет элементы входного массива.

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

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

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

Подробнее