Set.prototype.difference()
Baseline
2024
Newly available
Since June 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
difference() は Set インスタンスのメソッドで、集合を一つ受け取り、この Set に含まれており、与えられた集合に含まれない要素を含む新しい Set を返します。
構文
js
difference(other)
引数
返値
新しい Set オブジェクトで、この Set に含まれる要素で、other 集合には含まれない要素が入ったものです。
解説
数学的な記法では、差 (difference) は次のように定義されます。
ベン図を使うとこうなります。
difference() は、Set 風オブジェクトを other 引数として受け入れます。this は、ユーザーコードを呼び出すことなく、this オブジェクトに格納されているデータに直接アクセスするため、実際の Set インスタンスであることが要求されます。その後、その動作は this と other のサイズに依存します。
thisの中の要素がother.sizeよりも多かった場合、otherをkeys()メソッドを呼び出すことで走査し、thisの中のすべての要素のうちotherにない要素で新しい Set を構築します。- そうでなければ、
thisの要素を走査し、thisの要素eのうち、other.has(e)が偽値を返すすべてを含む新しい Set を構築します。
返される Set の要素の順序は、this の順序と同じです。
例
>difference() の使用
次の例では、奇数(10 未満)と完全平方(10 未満)の集合の差を計算します。結果は、完全平方ではない奇数の集合となります。
js
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-set.prototype.difference> |
ブラウザーの互換性
Loading…