Получится [undefined, undefined, undefined]: у стрелки с телом в фигурных скобках нет автоматического возврата выражения. Добавьте return или уберите фигурные скобки.
Почему map с фигурными скобками возвращает undefined?
Получится [undefined, undefined, undefined]: у стрелки с телом в фигурных скобках нет автоматического возврата выражения. Добавьте return или уберите фигурные скобки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Разработчик ожидает [2,4,6], но выполняет const result = [1,2,3].map(x => { x * 2; });. Объясните результат и покажите два корректных исправления.
Ответ
Получится [undefined, undefined, undefined]: у стрелки с телом в фигурных скобках нет автоматического возврата выражения. Добавьте return или уберите фигурные скобки.
const a = [1, 2, 3].map(x => { return x * 2; });
const b = [1, 2, 3].map(x => x * 2);
Map собирает возвращённые значения callback для каждого элемента. Само вычисление x * 2 не изменяет x и не определяет результат функции. Для возврата объектного литерала короткой стрелкой используют круглые скобки: x => ({value: x * 2}).