Чем отличаются forEach и map в JavaScript?

оба метода перебирают элементы массива (итерируют его) forEach: выполняет действие для каждого элемента, не возвращая значения map: формирует новый массив той же длины map используют для преобразования данных forEach…

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

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

оба метода перебирают элементы массива (итерируют его) forEach: выполняет действие для каждого элемента, не возвращая значения map: формирует новый массив той же длины map используют для преобразования данных forEach подходит для побочных эффектов — действий без возвращаемого результата map не изменяет исходный массив, а forEach сам по себе иммутабельность не обеспечивает выбор определяется задачей: требуется результат (map) или нужно выполнить операцию (forEach)

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

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

forEach и map

  • оба метода перебирают элементы массива (итерируют его)
  • forEach: выполняет действие для каждого элемента, не возвращая значения
  • map: формирует новый массив той же длины
  • map используют для преобразования данных
  • forEach подходит для побочных эффектов — действий без возвращаемого результата
  • map не изменяет исходный массив, а forEach сам по себе иммутабельность не обеспечивает
  • выбор определяется задачей: требуется результат (map) или нужно выполнить операцию (forEach)

Развёрнутый ответ

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

forEach и map — методы массивов в JavaScript, однако их назначение и поведение различаются. forEach последовательно обходит элементы и выполняет побочные эффекты, например выводит данные в консоль или изменяет внешнее состояние, но новый массив не создаёт. map предназначен для преобразования элементов: он возвращает новый массив такого же размера, содержащий обновлённые значения.

Главные различия

  • Возвращаемое значение: forEach возвращает undefined, тогда как map создаёт новый массив, поэтому его вызовы можно объединять в цепочку и использовать в функциональном программировании.
  • Иммутабельность: map формирует отдельный массив и не меняет исходный, что согласуется с принципами чистых функций. forEach чаще применяют там, где нужны мутации или side-effect’ы.
  • Performance: существенной разницы обычно нет, но map выбирают, когда результат нужно сохранить и использовать, а forEach — когда возвращаемое значение не требуется.
  • В React 18+ метод map часто применяют для формирования списков JSX, поскольку в результате нужен массив элементов.

Практическое применение

В прикладном коде map позволяет получать новые массивы из преобразованных данных — например, при фильтрации или форматировании ответов API. forEach удобен для логирования, изменения внешнего состояния и вызова функций, от которых не ожидается результат. Знание этих различий помогает создавать чистый, понятный и функциональный код.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку