← Все вопросы
Чем map отличается от forEach в JavaScript?
15
Оба перебирают массив и принимают колбэк. В чём тогда разница и когда что брать?
3 ответа
27
✓ Принятый ответ — помог автору
map возвращает новый массив из того, что ты вернул из колбэка. forEach ничего не возвращает (undefined) — он для побочных эффектов.
const a = [1, 2, 3];
const b = a.map(x => x * 2); // [2, 4, 6] — новый массив
const c = a.forEach(x => x * 2); // undefined — результат теряется
Правило: если результат перебора тебе нужен как массив — map. Если просто «сделай что-то с каждым» (вывести, отправить, записать) — forEach.
12
map собирает новый массив, forEach — нет. Не используй map, если результат не нужен (это вводит в заблуждение и тратит память).
6
map возвращает, forEach нет.
Ваш ответ
Войдите, чтобы ответить на вопрос.