--- 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])
callback
myMap
のそれぞれの項目に対して実行される関数。以下の引数を取ります。
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")}}