В чём разница между foreach и map

`forEach` и `map` — это два метода массивов, предназначенные для итерации по элементам массива, но они используются в разных целях и работают по-разному.

forEach

  • Назначение: Используется для выполнения заданной функции один раз для каждого элемента в массиве. Основное назначение — выполнение побочных эффектов (например, вывод в консоль, запись в файл и т.д.).
  • Возвращаемое значение: Не возвращает никакого значения (то есть возвращает `undefined`). Это означает, что результат его работы нельзя присвоить переменной.
  • Изменение оригинального массива: Может изменять оригинальный массив, если внутри функции-коллбэка производятся изменения его элементов.
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
// Выводит каждый элемент в консоль

map

  • Назначение: Используется для создания нового массива, заполненного результатами вызова предоставленной функции на каждом элементе исходного массива. Основное назначение — трансформация данных.
  • Возвращаемое значение: Возвращает новый массив, который содержит результаты применения функции к каждому элементу исходного массива. Это позволяет использовать его в цепочках вызовов и присваивать результат его работы переменной.
  • Изменение оригинального массива: Не изменяет оригинальный массив, что делает его предпочтительным в функциональном программировании.
const array2 = [1, 4, 9];
const map1 = array2.map(x => x * 2);
console.log(map1);
// Выводит новый массив [2, 8, 18]

Основные различия

  • Цель использования: `forEach` для выполнения операций или побочных эффектов на каждом элементе массива; `map` для создания нового массива на основе обработки каждого элемента исходного массива.
  • Возвращаемое значение: `forEach` возвращает `undefined`, в то время как `map` возвращает новый массив.
  • Изменение исходного массива: `forEach` может изменять исходный массив, если это предусмотрено логикой коллбэка; `map` не изменяет исходный массив, а создаёт новый.

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

Feb. 22, 2024, easyoffer