PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

В чем разница между 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.

Другие вопросы раздела