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");