このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
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 2015年7月.
forEach() メソッドは、指定された関数をMap オブジェクト内にあるキーと値のペアそれぞれに対して 1 回ずつ、挿入順に実行します。
In this article
試してみましょう
function logMapElements(value, key, map) { console.log(`m[${key}] = ${value}`);}new Map([ ["foo", 3], ["bar", {}], ["baz", undefined],]).forEach(logMapElements);// Expected output: "m[foo] = 3"// Expected output: "m[bar] = [object Object]"// Expected output: "m[baz] = undefined"構文
// アロー関数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® 2026 Language Specification> # sec-map.prototype.foreach> |