Книга: 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");

Оглавление книги


Генерация: 0.684. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз