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.
forEach()
メソッドは、指定された関数を Map
オブジェクト内にあるキーと値のペアそれぞれに対して 1 回ずつ、挿入順に実行します。
試してみましょう
構文
// アロー関数
forEach(() => { /* … */ } )
forEach((value) => { /* … */ } )
forEach((value, key) => { /* … */ } )
forEach((value, key, map) => { /* … */ } )
// コールバック関数
forEach(callbackFn)
forEach(callbackFn, thisArg)
// インラインコールバック関数
forEach(function() { /* … */ })
forEach(function(value) { /* … */ })
forEach(function(value, key) { /* … */ })
forEach(function(value, key, map) { /* … */ })
forEach(function(value, key, map) { /* … */ }, thisArg)
引数
callbackFn
-
マップのそれぞれの項目に対して実行される関数。以下の引数を取ります。
thisArg
省略可-
callbackFn
の実行時にthis
として使用される値です。
返値
undefined
です。
解説
forEach
メソッドは、指定された関数 callbackFn
を、マップの実在するそれぞれのキーに対して一度ずつ呼び出します。これは削除されたキーに対しては呼び出しません。ただし、存在していて undefined
である値に対しては呼び出します。
callbackFn
は次の 3 つの引数で呼び出されます。
- 項目の値 (
value
) - 項目のキー (
key
) - 走査中の
Map
オブジェクト
thisArg
引数が forEach
に指定されると、 callbackFn
の呼び出し時にそのオブジェクトが this
の値として使用されます。与えられなかった場合は、 undefined
が this
の値として渡されます。 callback
によって究極に管理される this
の値は、関数から見える this
を特定する一般規則に従います。
それぞれの値に対して一度ずつ実行されますが、 forEach
が終了するまでに削除され再追加された場合は除きます。 callback
はその前に削除された値に対しては実行されません。 forEach
が終了する前に追加された新しい値に対しては実行されます。
例
Map オブジェクトの内容を表示
以下のコードは Map
オブジェクト内の各要素を 1 行ずつ出力します。
function logMapElements(value, key, map) {
console.log(`map.get('${key}') = ${value}`);
}
new Map([
["foo", 3],
["bar", {}],
["baz", undefined],
]).forEach(logMapElements);
// ログ出力:
// "map.get('foo') = 3"
// "map.get('bar') = [object Object]"
// "map.get('baz') = undefined"
仕様書
Specification |
---|
ECMAScript Language Specification # sec-map.prototype.foreach |
ブラウザーの互換性
BCD tables only load in the browser