→
指定された関数を Map オブジェクト内にあるキーと値のペアそれぞれに対して1回ずつ、挿入順に実行します。
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 オブジェクト内の各要素を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