Map.prototype.forEach()

Метод 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 (ECMA-262)
Определение 'Map.prototype.forEach' в этой спецификации.
Живой стандарт  

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

BCD tables only load in the browser

Смотрите также