Назад к вопросам
Junior
108
questionbank

В чём разница между методами foreach и map в JavaScript?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

map также перебирает элементы массива и выполняет функцию обратного вызова для каждого элемента. Однако он возвращает новый массив, содержащий результаты выполнения этой функции на каждом элементе. Он используется для преобразования одного массива в другой.

Пример с forEach:

const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Вывод:
// 2
// 4
// 6
// numbers остается [1, 2, 3]

Пример с map:

const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Вывод: [2, 4, 6]
// numbers остается [1, 2, 3]

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

Критерий forEach map
Возвращаемое значение undefined Новый массив
Изменение массива Не создает новый массив Создает новый массив
Основное назначение Выполнение действий на каждом элементе Преобразование массива в новый массив
Цепочки методов Не поддерживается естественным образом Поддерживается (возвращает массив)