В чём разница между методами 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 |
Новый массив |
| Изменение массива | Не создает новый массив | Создает новый массив |
| Основное назначение | Выполнение действий на каждом элементе | Преобразование массива в новый массив |
| Цепочки методов | Не поддерживается естественным образом | Поддерживается (возвращает массив) |