Map.prototype.forEach()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

El método forEach() de las instancias de Map ejecuta la función provista, una vez por cada tupla llave/valor en este map, en orden de inserción.

Pruébalo

Sintaxis

js
forEach(callbackFn)
forEach(callbackFn, thisArg)

Parámetro

callbackFn

Una función que se ejecuta por cada entrada en el map. La función es llamada con los siguientes argumentos:

value

El valor de cada iteración.

key

La llave de cada iteración.

map

El map que esta siendo iterado.

thisArg Opcional

Un valor que se usa como this cuando se ejecuta la función callbackFn.

Valor devuelto

Ningúno (undefined).

Descripción

El método forEach ejecuta la función callback provista, una vez por cada llave que actualmente existe en el map. No se invoca para llaves que fueron borradas. Sin embargo, la función es ejecutada para valores que se encuentran en el objeto, pero que su valor es undefined.

La función callback es invocada con tres argumentos:

  • el value del elemento
  • el key del elemento
  • el objeto Map que se esta iterando

Si el parámetro thisArg se provee a la función forEach, este se pasará a la función callback cuando sea invocada, para usarse como el valor this. De lo contrario, el valor undefined será pasado para usarse como el valor this. El valor this que finalmente es visible para la función callback, es determinado de acuerdo a las reglas para determinar el valor this visible para una función.

Cada valor es visitado una vez, excepto en el caso en que el valor es borrado y agregado antes de que forEach haya terminado. La función callback no es invocada para valores que se borraron antes de ser visitados. Los valores agregados antes de que forEach termine, serán visitados.

Ejemplos

Imprimiendo el contenido de un objeto Map

El siguiente código, registra en la consola un mensaje por cada elemento en un objeto Map:

js
function logMapElements(value, key, map) {
  console.log(`map.get('${key}') = ${value}`);
}
new Map([
  ["foo", 3],
  ["bar", {}],
  ["baz", undefined],
]).forEach(logMapElements);
// Logs:
// "map.get('foo') = 3"
// "map.get('bar') = [object Object]"
// "map.get('baz') = undefined"

Especificaciones

Specification
ECMAScript Language Specification
# sec-map.prototype.foreach

Compatibilidad con navegadores

BCD tables only load in the browser

Véase también