Метод forEach() выполняет переданную функцию единожды для каждой пары ключ/значение объекта Map в порядке их вставки.

Синтаксис

myMap.forEach(callback[, thisArg])

Параметры

callback
Функция, которая будет выполнена для каждого элемента.
thisArg
Значение, которое будет использовано в качестве текущего при выполнении callback.

Возвращаемое значение

undefined.

Описание

Метод forEach выполняет переданный ему callback по разу для каждого фактически существующего ключа в наборе. Callback не вызывается для ключей, которые были удалены. Однако, он выполняется для элементов со значением undefined.

При вызове callback используются три аргумента:

  • значение элемента
  • ключ элемента
  • объект Map, по которому осуществляется проход

Если аргумент thisArg указан для forEach, то при вызове callback он будет передан в качестве значения this.  В противном случае для this будет передано undefined. Значение this, в конечном итоге наблюдаемое в функции callback, определяется в соответствии c обычными правилами определения this в функции.

Каждое значение посещается один раз, за исключением случая, когда оно было удалено и добавлено снова до завершения forEach. callback не вызывается для значений, удаленных до их посещения. Новые значения будут посещены, если они добавлены до завершения forEach.

forEach исполняет функцию callback один раз для каждого элемента в объекте Map; не возвращает значение.

Примеры

Вывод содержимого объекта Map

Следующий код выводит в консоль строку для каждого элемента в объекте Map:

function logMapElements(value, key, map) {
    console.log("m[" + key + "] = " + value);
}
new Map([["foo", 3], ["bar", {}], ["baz", undefined]]).forEach(logMapElements);
// logs:
// "m[foo] = 3"
// "m[bar] = [object Object]"
// "m[baz] = undefined"

Спецификации

Спецификация Статус Комментарий
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Map.prototype.forEach' в этой спецификации.
Стандарт Initial definition.
ECMAScript Latest Draft (ECMA-262)
Определение 'Map.prototype.forEach' в этой спецификации.
Черновик  

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidiOS SafariSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 25IE Полная поддержка 11Opera Полная поддержка 25Safari Полная поддержка 8WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Edge Mobile Полная поддержка 12Firefox Android Полная поддержка 25Opera Android Полная поддержка 25Safari iOS Полная поддержка 8Samsung Internet Android Полная поддержка Даnodejs Полная поддержка 0.12

Легенда

Полная поддержка  
Полная поддержка

Смотри также

Метки документа и участники

Внесли вклад в эту страницу: swa1ps, trueanqu, SomeoneDeployMe
Обновлялась последний раз: swa1ps,