JavaScript метод forEach()
JavaScript ArrayОпределение и применение
JavaScript метод forEach() позволяет выполнить переданную функцию один раз для каждого элемента в массиве в порядке возрастания индекса.
Обращаю Ваше внимание, что функция обратного вызова, переданная в качестве параметра метода forEach() не будет вызвана для удалённых, или пропущенных элементов массива.
Диапазон элементов, обрабатываемых с помощью метода forEach() устанавливается перед первым вызовом функции обратного вызова. Если элементы были добавлены к массиву после её вызова, то на таких элементах функция вызвана не будет.
Если значения существующих элементов массива изменяются в момент выполнения, то в качестве передаваемого значения функции будет значение в тот момент времени, когда метод forEach() посещает их. Если элементы удаляются до их посещения, то такие элементы посещены не будут. Если элементы, которые уже посещены, удаляются во время прохода по массиву, то более поздние элементы будут пропущены.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
forEach() | Да | Да | Да | Да | 9.0 | Да |
JavaScript синтаксис:
// только с callback функцией array.forEach( function( currentValue, index, arr ) ); // с использованием объекта, на который может ссылаться ключевое слово this array.forEach( function( currentValue, index, arr ), thisValue );
Версия JavaScript
ECMAScript 5.1 (Реализовано в JavaScript 1.6)Значения параметров
Параметр | Описание |
---|---|
function | Функция обратного вызова, которая будет выполнена один раз для каждого элемента в массиве. Функция принимает следующие параметры:
Если в качестве параметра метода передается что-то, что не является объектом функции, то будет вызвано исключение TypeError. Обязательный параметр. |
thisValue | Объект, на который может ссылаться ключевое слово this внутри функции обратного вызова. Если параметр thisValue не используется, то в качестве значения this будет использоваться undefined (в конечном счете this будет зависеть от обычных правил контекста выполнения функции). Необязательный параметр. |
Пример использования
В следующем примере мы рассмотрим как получить сумму всех элементов массива с использованием JavaScript метода forEach():
var array = [10, 20, 30]; // инициализируем переменную, содержащую массив числовых значений var sum = 0; // инициализируем переменную, содержащую числовое значение array.forEach( // перебираем все элементы массива array function sumNumber( currentValue ) { sum += currentValue; } ); console.log( sum ); // выводим значение переменной sum равное 50
В следующем примере мы рассмотрим использование второго аргумента метода forEach(), который указывает на объект, на который мы можем ссылаться с использованием ключевого слова this внутри функции обратного вызова:
var numbers = [2, 3, 4]; // инициализируем переменную, содержащую массив числовых значений var squared = []; // инициализируем переменную, содержащую пустой массив var myObject = { // инициализируем переменную, содержащую объект square: function( currentValue ) { // метод объекта, который принимает значение return currentValue * currentValue; // и возвращает его возведенным в квадрат } }; numbers.forEach( // перебираем все элементы массива numbers function( currentValue ) { squared.push( this.square( currentValue ) ); // добавляем в массив squared возвращаемое значение метода square объекта myObject }, myObject // объект, на который мы ссылаемся с использованием ключевого слова this ); console.log( squared ); // выводим значение переменной squared равное [4, 9, 16];JavaScript Array