Метод forEach для перебора массива в JavaScript

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

Посмотрим на примере. Пусть дан вот такой массив:

let arr = ['a', 'b', 'c', 'd', 'e'];

Давайте выведем столбец элементов массива:

let arr = ['a', 'b', 'c', 'd', 'e']; arr.forEach(function(elem) { document.write(elem + '<br>'); });

А теперь кроме элементов массива выведем еще и их номера. Для этого сделаем вторую переменную index, в которую будут попадать номера наших элементов:

let arr = ['a', 'b', 'c', 'd', 'e']; arr.forEach(function(elem, index) { document.write(index + '. ' + elem + '<br>'); });

Применение forEach

На первый взгляд кажется, что метод forEach не очень полезен, так как ничего не возвращает. На самом деле просто можно сделать переменную, расположенную снаружи коллбэка:

let result; // внешняя переменная arr.forEach(function(elem) { // тут доступна переменная result });

Используя этот прием найдем, к примеру, сумму элементов массива:

let arr = [1, 2, 3, 4, 5]; let sum = 0; arr.forEach(function(elem) { sum += elem; }); console.log(sum);

Дан массив с числами. Используя метод forEach найдите сумму квадратов элементов этого массива.

Замечания

Метод forEach появился в JavaScript раньше, чем новый цикл for-of. По сути, эти два способа перебора похожи, но цикл for-of имеет более простой синтаксис, поэтому, скорее всего, чаще вы будете пользоваться именно им.