Блог

Методы JavaScript map () vs forEach ()

Редакция Lodoss Team
0

Если вам когда-либо приходилось работать с JavaScript, то вы наверняка сталкивались с наиболее широко используемыми методами map() и forEach(). Кроме того, есть множество других методов для работы с массивами и строками, которые также широко используются программистами в зависимости от задачи.

В этой статье рассмотрим различия и использование методов JavaScript map() и forEach().

Определение map() и forEach():

1. map(): создает новый массив с результатами вызова функции-колбека для каждого элемента в этом массиве;
2. forEach(): выполняет функцию-колбек один раз для каждого элемента массива.

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

Для лучшего понимания рассмотрим эти методы на следующем примере:

Возьмем массив с именем exampleArray, выполним методы map и forEach на этом массиве и посмотрим, в чем получится разница между результатами этих двух методов.

Пример с Array.prototype.map():

В приведенном выше коде мы умножаем каждый элемент массива exampleArray на 2 и получаем новый массив mapArrResult с таким же размером:

Результат:

Пример с Array.prototype.forEach():

В приведенном выше примере кода мы делаем то же самое, что и с методом map (), но в результате получаем undefined.

Надеемся, вы поняли основное ключевое различие между этими двумя методами JavaScript и утверждениями, которые прочитали в статье. Вы можете проверить этот результат, введя пример из этой статьи в онлайн редактор JavaScript.

Что лучше использовать и когда?

Выше мы разобрали, в чем основное различие между этими двумя методами, и эти различия определяют область их использования.

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

Что насчет скорости?

В настоящее время в разработке скорость — это ключевой фактор при написании кода. Так какой же метод лучше с точки зрения производительности?

Метод map() превосходит forEach () по скорости. Стоит использовать метод forEach() только тогда, когда другие методы не могут сделать то, что вы задумали.

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

Вывод


Это все, что можно рассказать полезного о методах map() vs forEach(). Надеемся, что вы поняли, как и когда использовать эти методы в своем коде. Хороший программист никогда не делает map через forEach. Будь хорошим программистом!

JavaScript map() vs forEach() Methods

Над статьей работали:
Марина Мошногорская
Татьяна Семченко

0