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.

O método forEach() executa a função que foi provida uma vez para cada par de chave-valor no objeto Map, na order em que foram inseridos.

Experimente

function logMapElements(value, key, map) {
  console.log(`m[${key}] = ${value}`);
}

new Map([
  ["foo", 3],
  ["bar", {}],
  ["baz", undefined],
]).forEach(logMapElements);

// Expected output: "m[foo] = 3"
// Expected output: "m[bar] = [object Object]"
// Expected output: "m[baz] = undefined"

Sintaxe

js
// Arrow function
forEach(() => { ... } )
forEach((value) => { ... } )
forEach((value, key) => { ... } )
forEach((value, key, map) => { ... } )

// função de Callback
forEach(callbackFn)
forEach(callbackFn, thisArg)

// função de callback inline
forEach(function callbackFn() { ... })
forEach(function callbackFn(value) { ... })
forEach(function callbackFn(value, key) { ... })
forEach(function callbackFn(value, key, map) { ... })
forEach(function callbackFn(value, key, map) { ... }, thisArg)

Parâmetros

callbackFn

A função que será executada em cada entrada do map. Ela receberá os seguintes argumentos:

value Optional

O valor de cada iteração.

key Optional

A chave de cada iteração.

map Optional

O map que está sendo iterado.

thisArg Optional

O valor para usar como this quando o callback for executado.

Valor retornado

Descrição

O método forEach executa o callback fornecido uma vez para cada chave do map que realmente existe. Ele não é invocado para chaves que foram deletadas. Porém, é executado para valores que estão presentes mesmo tendo o valor undefined.

O callback é invocado com três argumentos:

  • O value de entrada
  • A key de entrada
  • o objeto Map que está sendo percorrido

Se o parâmetro thisArg for fornecido para o forEach, ele será passado para o callback quando for invocado, para ser usado como o valor de this. De outra forma, o valor undefined será usado como valor de this. O valor de this será observado pelo callback em última análise e será determinado de acordo com as regras usuais para a determinação do this visto por uma função.

Cada valor será visitado uma vez, exceto no caso em que foram deletados e adicionados novamente antes do forEach ser finalizado. O callback não é invocado para valores que foram removidos antes de terem sidos visitados. Novos valores adicionados antes do forEach terminar serão visitados.

Exemplos

Exibindo o conteúdo de um objeto Map

O código a seguir imprime uma linha para cada elemento do 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"

Especificações

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

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
forEach

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também