Метод 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' в этой спецификации.
Черновик  

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

ВозможностьChromeEdgeFirefoxInternet ExplorerOperaSafari
Базовая поддержка38122511258
ВозможностьAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Базовая поддержка38381225258 Да

Смотри также

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

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