このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Set.prototype.isSupersetOf()

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.

>

isSupersetOf()Set インスタンスのメソッドで、集合を取り、与えられた集合のすべての要素がこの Set にあることを示す論理値を返します。

構文

js
isSupersetOf(other)

引数

other

Set オブジェクト、または Set 風オブジェクトです。

返値

other の集合にあるあるすべての要素がこの Set にもあれば true、そうでなければ false です。

解説

数学的な記法では、上位集合は次のように定義されます。

ABxB,xAA\supseteq B \Leftrightarrow \forall x\in B,\,x\in A

ベン図を使うとこうなります。

2 つの円からなるベン図。B は A に完全に含まれるため、A は B の上位集合です。

メモ: 上位集合の関係は、真の上位集合ではありません。つまり、thisother の中の要素が同じである場合、isSupersetOf()true を返します。

isSupersetOf() は、Set 風オブジェクトを other 引数として受け入れます。this は、ユーザーコードを呼び出すことなく、this オブジェクトに格納されているデータに直接アクセスするため、実際の Set インスタンスであることが要求されます。その後、その動作は thisother のサイズに依存します。

  • this の要素数が other.size より少ない場合は、直接 false を返します。
  • そうでなければ、otherkeys() メソッドを呼び出して走査し、other の要素が this に存在しない場合は false を返します(そして、return() メソッドを呼び出して keys() イテレータを終了します)。 そうでなければ、true を返します。

>

isSupersetOf() の使用

偶数(20 未満)の集合は、4 の倍数(20 未満)の集合の上位集合です。

js
const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]);
const fours = new Set([4, 8, 12, 16]);
console.log(evens.isSupersetOf(fours)); // true

すべての奇数(20 未満)の集合は、素数(20 未満)の集合の上位集合ではありません。なぜなら、2 は素数ですが、奇数ではないからです。

js
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]);
const odds = new Set([3, 5, 7, 9, 11, 13, 15, 17, 19]);
console.log(odds.isSupersetOf(primes)); // false

同値集合は互いに上位集合です。

js
const set1 = new Set([1, 2, 3]);
const set2 = new Set([1, 2, 3]);
console.log(set1.isSupersetOf(set2)); // true
console.log(set2.isSupersetOf(set1)); // true

仕様書

Specification
ECMAScript® 2026 Language Specification>
# sec-set.prototype.issupersetof>

ブラウザーの互換性

関連情報