Set.prototype.isSubsetOf()
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.
isSubsetOf()
は Set
インスタンスのメソッドで、集合を取り、この Set のすべての要素が与えられた集合にあることを示す論理値を返します。
構文
isSubsetOf(other)
引数
返値
この Set にあるすべての要素が other
の集合にもあれば true
、そうでなければ false
です。
解説
数学的な記法では、部分集合は次のように定義されます。
ベン図を使うとこうなります。
メモ:
部分集合の関係は、真部分集合ではありません。つまり、this
と other
の中の要素が同じである場合、isSubsetOf()
は true
を返します。
isSubsetOf()
は、Set 風オブジェクトを other
引数として受け入れます。this
は、ユーザーコードを呼び出すことなく、this
オブジェクトに格納されているデータに直接アクセスするため、実際の Set
インスタンスであることが要求されます。その後、その動作は this
と other
のサイズに依存します。
this
の要素数がother.size
より多い場合は、直接false
を返します。- そうでなければ、
this
の要素を走査し、this
の要素e
のうち、other.has(e)
が偽値を返せばfalse
を返し餡巣。それ以外の場合は、true
を返します。
例
isSubsetOf() の使用
4 の倍数(20 未満)の集合は、偶数(20 未満)の集合の部分集合です。
const fours = new Set([4, 8, 12, 16]);
const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]);
console.log(fours.isSubsetOf(evens)); // true
素数(20 未満)の集合は、すべての奇数(20 未満)の集合の部分集合ではありません。なぜなら、2 は素数ですが、奇数ではないからです。
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(primes.isSubsetOf(odds)); // false
同値集合は互いに部分集合です。
const set1 = new Set([1, 2, 3]);
const set2 = new Set([1, 2, 3]);
console.log(set1.isSubsetOf(set2)); // true
console.log(set2.isSubsetOf(set1)); // true
仕様書
Specification |
---|
Set methods # sec-set.prototype.issubsetof |
ブラウザーの互換性
BCD tables only load in the browser