Set.prototype.forEach()
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
- 各要素に対して実行する関数で、 3つの引数を受け付けます。
-
currentValue
,currentKey
Set
で現在 処理されている要素。Set
にはキー(key)がないため値(value)が両方に渡されます。set
forEach()
が呼ばれているSet
オブジェクト
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()
が終了する前に追加された新規の値は訪問されます。
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"
仕様書
ブラウザーの互換性
BCD tables only load in the browser