Map.prototype.forEach()

El método forEach() ejecuta una función por cada par clave / valor en el objeto Map, en orden de inserción.

Sintaxis

myMap.forEach(callback[, thisArg])

Parámetros

callback
Función ejecutada en cada elemento.
thisArg
Valor a usar por la funcion callback.

Valor de Retorno

undefined.

Descripción

El método forEach ejecuta la devolución de llamada (callback) proporcionada una vez para cada clave del mapa que realmente exista. No se invoca para las claves que se han eliminado. Sin embargo, se ejecuta para los valores que están presentes pero tienen el valor indefinido (undefined).

La función (callback) es invocada con 3 argumentos:

  • valor del elemento
  • clave del elemento
  • El objeto utilizado

Si se provee un parámetro thisArg al método forEach, pasará al callback cuando sea invocado, para ser utilizado como su valor this. De otra manera, el valor undefined pasará para ser usado como su valor this. El valor this finalmente observable por el callback se determina de acuerdo a las reglas usuales para determinar la visibilidad de this por una función.

Cada valor es usado una vez, excepto en este caso cuando es eliminado y agregado de nuevo antes de que el forEach haya terminado. callback no es invocado para valores eliminados antes de que sean usados. 

El método forEach ejecuta la función callback una vez para cada elemento en el objeto Map; No se retornan valores.

Ejemplos

Imprimiendo el contenido de un objeto Map

El siguiente código imprime una línea por cada elemento en el objeto 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"

Especificaciones

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Map.prototype.forEach' en esta especificación.
Standard Definición Inicial.
ECMAScript Latest Draft (ECMA-262)
La definición de 'Map.prototype.forEach' en esta especificación.
Draft

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
forEachChrome Soporte completo 38Edge Soporte completo 12Firefox Soporte completo 25IE Soporte completo 11Opera Soporte completo 25Safari Soporte completo 8WebView Android Soporte completo 38Chrome Android Soporte completo 38Firefox Android Soporte completo 25Opera Android Soporte completo 25Safari iOS Soporte completo 8Samsung Internet Android Soporte completo 3.0nodejs Soporte completo 0.12

Leyenda

Soporte completo  
Soporte completo

Véase también