В чем разница между forEach и map?
Массивы и структуры данных
`forEach` и `map` оба перебирают массив, но `map` возвращает новый массив, а `forEach` — нет (возвращает undefined).
map — трансформация
Создаёт новый массив из результатов коллбэка. Используется, когда нужно преобразовать данные.
const doubled = [1, 2, 3].map((n) => n * 2); // [2, 4, 6]forEach — побочные эффекты
Просто выполняет функцию для каждого элемента, ничего не возвращает. Используется для действий: логирование, изменение внешнего состояния.
[1, 2, 3].forEach((n) => console.log(n));Отличия
- Возврат:
map→ новый массив,forEach→undefined. - Чейнинг:
mapможно продолжить (.filter,.map),forEach— нет. - Назначение:
map— трансформация,forEach— сайд-эффекты. - break: остановить нельзя ни в одном; для выхода используют
for...of/some.
Как выбрать
- Нужен новый массив из преобразованных элементов → map.
- Нужно просто что-то сделать с каждым элементом → forEach.
Антипаттерн — использовать map только ради сайд-эффекта, игнорируя результат.
Коротко для собеседования
map трансформирует и возвращает новый массив (можно чейнить); forEach выполняет действие для каждого элемента и возвращает undefined. Для получения данных — map, для побочных эффектов — forEach.