→
与えられた関数を Set オブジェクトの各値に対して一回ずつ、挿入順で実行します。
mySet | |||||
---|---|---|---|---|---|
callback | 各要素に対して実行する関数で、 3つの引数を受け付けます。
| ||||
thisArg | callback を実行するとき、this として使用する値です。 |
undefined です。
forEach() メソッドは Set オブジェクトに実際に存在する各値に対して一回、与えられた callback を実行します。削除された値に対しては呼び出されません。ですが、undefined の値をもつ要素に対しては実行されます。
callback は3つの引数で呼び出されます:
Set オブジェクトにキーはありません。しかし、最初の 2 つの引数は、両方とも Set に含まれる値です。そのため callback 関数は Map や Array の forEach() メソッドと矛盾がありません。
thisArg 引数が forEach() に与えられた場合、呼び出されたときに this 値として使用するために callback に渡されます。さもなければ、this 値として使用するために undefined 値が渡されます。callback によって最終的に観測可能な this 値は関数から見た this を決定するための通常のルールに応じて決定されます。
各値は一度だけ訪問されますが、forEach() が終了する前に削除・再追加された場合は例外です。到達する前に削除された値に対しては callback は実行されません。forEach() が終了する前に追加された新規の値は訪問されます。
forEach() は Set オブジェクト内の各要素に対して一回 callback 関数を実行します。forEach() は値を返しません。
次のコードでは、Set オブジェクト内の各要素に対してログを出力します。
function Job(value1, value2, set) { alert('s[' + value1 + '] = ' + value2); } new Set(['foo', 'bar', undefined]).forEach(Job);
表示結果:
"s[foo] = foo"
"s[bar] = bar"
"s[undefined] = undefined"