このロケールの翻訳が存在しないため、英語バージョンのコンテンツを表示しています。 Help us translate this article!
forEach()
メソッドは、Set
オブジェクトの各値に対して一回、挿入順で与えられた関数を実行します。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
構文
mySet.forEach(callback[, thisArg])
引数
callback
- 各要素に対して実行する関数です。taking three arguments:
-
currentValue
,currentKey
- The current element being processed in the
Set
. As there are no keys inSet
, the value is passed for both arguments. set
- The
Set
object whichforEach()
was called upon.
thisArg
callback
を実行するとき、this
として使用する値です。
戻り値
undefined
です。
説明
forEach()
メソッドは Set
オブジェクトに実際に存在する各値に対して一回、与えられた callback
を実行します。削除された値に対しては呼び出されません。ですが、undefined
の値をもつ要素に対しては実行されます。
callback
は3つの引数で呼び出されます。
- 要素値
- 要素キー
- 対象となる
Set
オブジェクト
Set
オブジェクトにキーはありません。しかし、最初の 2 つの引数は、両方とも Set
に含まれる値です。そのため callback
関数は Map
や Array
の forEach()
メソッドと矛盾がありません。
thisArg
引数が forEach()
に与えられた場合、呼び出されたときに this
値として使用するために callback
に渡されます。さもなければ、this
値として使用するために undefined
値が渡されます。callback
によって最終的に観測可能な this
値は関数から見た this
を決定するための通常のルールに応じて決定されます。
forEach
によって処理される要素の範囲は最初の callback
の呼び出しより前に決定されます。forEach
の呼び出しが始まったあとで Set
オブジェクトに追加された要素は、callback
によって処理されません。Set
のオブジェクト内の存在している要素が変更されたり削除されたら、callback
に渡される値は、forEach
が処理するときの値になります。削除された要素は処理されません。
forEach()
は Set
オブジェクト内の各要素に対して一回 callback
関数を実行します。forEach()
は値を返しません。
例
Set
オブジェクトの内容を出力する
次のコードでは、Set
オブジェクト内の各要素に対して一行ログを出力します。:
function logSetElements(value1, value2, set) { console.log("s[" + value1 + "] = " + value2); } new Set(["foo", "bar", undefined]).forEach(logSetElements); // logs: // "s[foo] = foo" // "s[bar] = bar" // "s[undefined] = undefined"
仕様
仕様書 | 策定状況 | コメント |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Set.prototype.forEach の定義 |
標準 | 初期定義 |
ECMAScript Latest Draft (ECMA-262) Set.prototype.forEach の定義 |
ドラフト |
ブラウザー実装状況
デスクトップ | モバイル | サーバー | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
forEach | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox 完全対応 25 | IE 完全対応 11 | Opera 完全対応 25 | Safari 完全対応 8 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android 完全対応 25 | Opera Android 完全対応 25 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 3.0 | nodejs 完全対応 0.12 |
凡例
- 完全対応
- 完全対応