Функция массива JavaScript map() и forEach(). Давайте углубимся прямо в тему и сравним обе функции массива и узнаем, когда какую функцию использовать и почему.
Массив.карта()
Метод map
получает функцию в качестве параметра. Затем он применяет его к каждому элементу и возвращает совершенно новый массив (заполненный результатами вызова предоставленной функции). Ключевым выводом является то, что он всегда будет возвращать одно и то же количество элементов.
Массив.для каждого()
Метод forEach()
получает функцию в качестве аргумента и выполняет ее один раз для каждого элемента, присутствующего в массиве. Однако вместо того, чтобы возвращать новый массив (как в случае с map
), он возвращает undefined
.
Как видно из приведенных выше результатов, варианты использования этих двух функций полностью отличаются друг от друга.
map
используется для изменения каждого значения данного массива, а forEach
используется для упрощения перебора массива без изменения его значений.
Отличия
Первое различие между map()
и forEach()
— это возвращаемое значение. Метод forEach()
возвращает undefined
whilemap()
возвращает новый массив с преобразованными элементами.
Второе различие между этими методами массива заключается в том, что map()
можно объединить в цепочку. Вы можете выполнить reduce()
, sort()
, filter()
другой метод после выполнения метода map()
для массива, в то время как это невозможно в случае forEach()
, поскольку он возвращает undefined
.
Заключение
Если вы хотите изменить каждое значение массива — используйтеmap
, но если вы хотите сделать другие операции над каждым значением данного массива — используйте forEach
. Нет смысла использовать map
, если вы не хотите менять массив, и forEach
, если хотите изменить каждое значение.