Menu
Coddy logo textTech

ForEach и Map — это одно и то же?

Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 56 из 65.

Хотя forEach() и map() оба являются методами массивов, используемыми для итерации, они служат разным целям и имеют различное поведение:

forEach():

  • Выполняет указанную функцию один раз для каждого элемента массива.
  • Не создает новый массив.
  • Возвращает undefined.
  • Нельзя объединять в цепочку с другими методами массива.

map():

  • Создает новый массив с результатами вызова предоставленной функции для каждого элемента в массиве.
  • Возвращает новый массив той же длины, что и исходный.
  • Может быть объединен в цепочку с другими методами массива.

Пример:

const numbers = [1, 2, 3, 4];

// forEach
numbers.forEach(num => console.log(num * 2));
// Выводит: 2, 4, 6, 8
// Возвращает: undefined
// map
const doubled = numbers.map(num => num * 2);
console.log(doubled);
// Вывод: [2, 4, 6, 8]
// Возвращает: Новый массив [2, 4, 6, 8]

Используйте forEach(), когда вы хотите выполнить операцию над каждым элементом без создания нового массива. Используйте map(), когда вы хотите преобразовать каждый элемент и создать новый массив с результатами.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Шпаргалка

Хотя forEach() и map() являются методами массивов, используемыми для итерации, они служат разным целям:

forEach():

  • Выполняет функцию один раз для каждого элемента массива
  • Не создает новый массив
  • Возвращает undefined
  • Не может быть объединен в цепочку с другими методами массивов

map():

  • Создает новый массив с результатами вызова функции для каждого элемента
  • Возвращает новый массив той же длины, что и исходный
  • Может быть объединен в цепочку с другими методами массивов
const numbers = [1, 2, 3, 4];

// forEach - выполняет операцию, возвращает undefined
numbers.forEach(num => console.log(num * 2));

// map - трансформирует элементы, возвращает новый массив
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8]

Используйте forEach() для операций без создания нового массива. Используйте map() для трансформации элементов и создания нового массива.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и поток