Setオブジェクトを使用すると、プリミティブ値でもオブジェクト参照でも、すべての型の一意の値を格納できます。
Setオブジェクトは値の集合です。セットの要素を挿入順に反復することができます。セット内の値は、 一度だけ発生する可能性があり、それはセットのコレクションでユニークです。 SameValueZero比較アルゴリズムを使用して、 明確な値が区別されます。
パラメータ | 詳細 |
---|---|
繰り返し可能な | 反復可能オブジェクトが渡された場合、そのすべての要素が新しいSetに追加されます。 nullは未定義として扱われます。 |
値 | Setオブジェクトに追加する要素の値。 |
折り返し電話 | 各要素に対して実行する関数。 |
thisArg | オプション。コールバックを実行するときにこれとして使用する値。 |
セット内の各値は一意でなければならないため、値の等価性はチェックされ、===演算子で使用されているものと同じアルゴリズムに基づいていません。具体的には、Setsの場合、+0(厳密には-0に等しい)と-0は異なる値です。しかし、これは最新のECMAScript 6仕様で変更されています。 Gecko 29.0(Firefox 29 / Thunderbird 29 / SeaMonkey 2.26)(bug 952870)から始まり、最近の夜間のChromeでは+0と-0がSetオブジェクトの同じ値として扱われます。また、NaNとundefinedもSetに格納できます。 NaNはNaNと同じと見なされます(NaN!== NaNの場合でも)。