Metoda forEach() wykonuje dostarczoną funcję callback raz dla każdej pary klucz-wartosć Mapy w kolejności, w jakiej zostały zostały wstawione.

Składnia

myMap.forEach(callback[, thisArg])

Parametry

callback
Funkcja wykonywana dla każdego elementu.
thisArg
Wartość przypisywana do this poczas wywołania zwrotnego (funkcja callback).

Zwracana wartosć

undefined.

Opis

Metoda forEach wykonuje dostarczoną funkcję callback raz dla każdego klucza mapy, który istnieje. Nie jest wywoływana dla usuniętych kluczy, ale dla istniejących z wartością undefined już tak.

Funkcja callback przyjmuje trzy argumenty:

  • wartość elementu
  • klucz elementu
  • obiekt typu Map do przetworzenia

Jeśli argument thisArg jest dostarczony do forEach, zostaje przekazany do fukncji callback podczas jej wywołania, jako jej własna wartość this.  W przeciwnym wypadku, this przyjmuje wartość undefined

Każda wartość jest odwiedzana raz, oprócz przypadku, gdzie została usunięta, a następnie dodana ponownie, nim metoda forEach zakończyła swoje działanie. Funkcja callback nie jest wywoływana dla wartości usuniętych przed ich odwiedzeniem. Nowe wartości dodane jeszcze przed zakończeniem forEach zostaną odwiedzone.

Metoda forEach nie zwraca żadnej wartości.

Przykłady

Wyświetlanie zawartości Mapy

Poniższy kod wyświetla jedną linię dla każdej pary klucz-wartość Mapy:

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"

Specyfikacja

Specyfikacja Status Komentarz
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Map.prototype.forEach' in that specification.
Standard Definicja początkowa.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Map.prototype.forEach' in that specification.
Draft  

Kompatybilność z przeglądarkami

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support 38Edge Full support 12Firefox Full support 25IE Full support 11Opera Full support 25Safari Full support 8WebView Android Full support 38Chrome Android Full support 38Edge Mobile Full support 12Firefox Android Full support 25Opera Android Full support 25Safari iOS Full support 8Samsung Internet Android Full support Yesnodejs Full support 0.12

Legend

Full support  
Full support

See also

Autorzy i etykiety dokumentu

Autorzy tej strony: MarekHuckmann
Ostatnia aktualizacja: MarekHuckmann,