Книга: JavaScript. Подробное руководство, 6-е издание
7.9.1. Метод forEach()
7.9.1. Метод forEach()
Метод forEach()
выполняет обход элементов массива и для каждого из них вызывает указанную функцию. Как уже говорилось выше, функция передается методу forEach()
в первом аргументе. При вызове этой функции метод forEach()
будет передавать ей три аргумента: значение элемента массива, индекс элемента и сам массив. Если вас интересует только значение элемента, можно написать функцию с одним параметром - дополнительные аргументы будут игнорироваться:
var data = [1,2,3,4,5]; // Массив, элементы которого будут суммироваться
// Найти сумму элементов массива
var sum =0; // Начальное значение суммы 0
data.forEach(function(value) { sum += value; }); // Прибавить значение к sum
sum // => 15
// Увеличить все элементы массива на 1
data.forEach(function(v, і, а) { а[і] = v + 1; });
data // => [2,3,4,5,6]
Обратите внимание, что метод fогEach()
не позволяет прервать итерации, пока все элементы не будут переданы функции. То есть отсутствует эквивалент инструкции break
, которую можно использовать с обычным циклом for
. Если потребуется прервать итерации раньше, внутри функции можно возбуждать исключение, а вызов forEach()
помещать в блок try
. Ниже демонстрируется функция foreach()
, вызывающая метод forEach()
внутри такого блока try
. Если функция, которая передается функции foreach()
, возбудит исключение foreach.break
, цикл будет прерван преждевременно:
function foreach(a,f,t) {
try {
a.forEach(f,t);
} catch(e) {
if (e === foreach.break)
return;
else throw e;
}
}
foreach.break = new Error("StopIteration");