forEach()
Прямой перебор по элементам массива (важно: перебор!)
Для каждого элемента массива вызывает функцию callback. Этой функции он передаёт три параметра
callback(item, i, arr):
• item – очередной элемент массива.
• i – его номер.
• arr – массив, который перебирается.
var arr = ["Яблоко", "Апельсин", "Груша"];
arr.forEach(function(item, i, arr) {
alert( i + ": " + item + " (массив:" + arr + ")" );
});
Второй, необязательный аргумент forEach
позволяет указать контекст this
для callback. Метод forEach ничего не возвращает, его используют только для перебора, как более «элегантный» вариант, чем обычный цикл for.
_____________________
Метод forEach()
не позволяет прервать итерации, пока все элементы не будут переданы функции. То есть отсутствует эквивалент инструкции 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");