JavaScript

Map.prototype.forEachメソッド

 編集:2022.07.28 by T.A.

指定された関数を Map オブジェクト内にあるキーと値のペアそれぞれに対して1回ずつ、挿入順に実行します。

Map.forEach(callback([value][, key][, map])[, thisArg])
Map Map
callback Map のそれぞれの項目に対して実行される関数。3つの引数を取ります。
value 省略可。それぞれの反復処理における値です。
key 省略可。それぞれの反復処理におけるキーです。
map 省略可。反復処理されるマップです(上記の構文ボックスでは Map です)。
thisArg 省略可callback の実行時に this として使用される値です。
戻り値

undefined です。

解説

forEach メソッドは、指定された関数 callback を、マップの実在するそれぞれのキーに対して一度ずつ呼び出します。これは削除されたキーに対しては呼び出しません。ただし、存在していて undefined である値に対しては呼び出します。

callback は次の 3 つの引数で呼び出されます。

thisArg 引数が forEach に指定されると、callback の呼び出し時にそのオブジェクトが this の値として使用されます。与えられなかった場合は、undefined が this の値として渡されます。callback によって究極に管理される this の値は、関数から見える this を特定する一般規則 に従います。

それぞれの値に対して一度ずつ実行されますが、forEach が終了するまでに削除され再追加された場合は除きます。callback はその前に削除された値に対しては実行されません。forEach が終了する前に追加された新しい値に対しては実行されます。

Map オブジェクトの内容を表示

以下のコードは Map オブジェクト内の各要素を1行ずつ出力します。

function logMapElements(value, key, map) {
  alert(`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


テスト