← Все вопросы

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

Задан 2 месяца назад861 просмотров3 ответа
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 нет.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект