この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。
概要
Set
オブジェクトの各値に対して一度挿入順で与えられた関数を実行します。
構文
mySet.forEach(callback[, thisArg])
引数
callback
- 各要素に対して実行する関数。
thisArg
callback
を実行するとき、this
として使用する値。
説明
forEach
メソッドはSet
オブジェクトに実際に存在する各値に対して一度与えられたcallback
を実行します。削除された値に対しては呼び出されません。しかしながら、存在するがundefined
値をもつ要素に対しては実行されます。
callback
は3つの引数で呼び出されます。:
- 要素値
- 要素値
- 対象となる
Set
オブジェクト
Setオブジェクトにキーはありません。しかしながら、最初の2つの引数は、両方ともSetに含まれる値です。そのため、 callback関数はMap
やArray
のforEachメソッドと矛盾がありません。
thisArg
引数がforEach
に与えられたら、呼び出されたときにthis
値として使用するためにcallback
に渡されます。さもなければ、 undefined
値がthis
値として使用するために渡されます。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) The definition of 'Set.prototype.forEach' in that specification. |
Standard | Initial definition. |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 38 | 25.0 (25.0) | 11 | 25 | 7.1 |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | 未サポート | 38 | 25.0 (25.0) | 未サポート | 未サポート | iOS 8 |
関連情報