CARVIEW |
このページはコミュニティーの尽力で英語から翻訳されました。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 回ずつ、挿入順に実行します。
試してみましょう
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> |
ブラウザーの互換性
Loading…