--- title: Map.prototype.forEach() slug: Web/JavaScript/Reference/Global_Objects/Map/forEach tags: - ECMAScript 2015 - JavaScript - Map - Method - Prototype - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Map/forEach ---
forEach() メソッドは、指定された関数を Map オブジェクト内にあるキーと値のペアそれぞれに対して1回ずつ、挿入順に実行します。
myMap.forEach(callback([value][, key][, map])[, thisArg])
callbackmyMap のそれぞれの項目に対して実行される関数。以下の引数を取ります。
value {{Optional_Inline}}key {{Optional_Inline}}map {{Optional_Inline}}myMap です)。thisArg {{Optional_Inline}}callback の実行時に this として使用される値です。{{jsxref("undefined")}} です。
forEach メソッドは、指定された関数 callback を、マップの実在するそれぞれのキーに対して一度ずつ呼び出します。これは削除されたキーに対しては呼び出しません。ただし、存在していて undefined である値に対しては呼び出します。
callback は次の 3 つの引数で呼び出されます。
value)key)Map オブジェクトthisArg 引数が forEach に指定されると、 callback の呼び出し時にそのオブジェクトが this の値として使用されます。与えられなかった場合は、 undefined が this の値として渡されます。 callback によって究極に管理される this の値は、関数から見える this を特定する一般規則に従います。
それぞれの値に対して一度ずつ実行されますが、 forEach が終了するまでに削除され再追加された場合は除きます。 callback はその前に削除された値に対しては実行されません。 forEach が終了する前に追加された新しい値に対しては実行されます。
以下のコードは Map オブジェクト内の各要素を1行ずつ出力します。
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"
| 仕様書 |
|---|
| {{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}} |
{{Compat("javascript.builtins.Map.forEach")}}