Set.prototype.isSupersetOf()
En esta página
The isSupersetOf() method of {{jsxref("Set")}} instances takes a set and returns a boolean indicating if all elements of the given set are in this set.
Syntax#
isSupersetOf(other)
Parameters#
other- : A {{jsxref("Set")}} object, or set-like object.
Return value#
true if all elements in the other set are also in this set, and false otherwise.
Description#
In mathematical notation, superset is defined as:
And using Venn diagram:
[!NOTE] The superset relationship is not proper superset, which means
isSupersetOf()returnstrueifthisandothercontain the same elements.
isSupersetOf() accepts set-like objects as the other parameter. It requires {{jsxref("this")}} to be an actual {{jsxref("Set")}} instance, because it directly retrieves the underlying data stored in this without invoking any user code. Then, its behavior depends on the sizes of this and other:
- If there are fewer elements in
thisthanother.size, then it directly returnsfalse. - Otherwise, it iterates over
otherby calling itskeys()method, and if any element inotheris not present inthis, it returnsfalse(and closes thekeys()iterator by calling itsreturn()method). Otherwise, it returnstrue.
Examples#
Using isSupersetOf()#
The set of even numbers (<20) is a superset of multiples of 4 (<20):
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
The set of all odd numbers (<20) is not a superset of prime numbers (<20), because 2 is prime but not odd:
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
Equivalent sets are supersets of each other:
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
Specifications#
{{Specifications}}
Browser compatibility#
{{Compat}}
See also#
- Polyfill of
Set.prototype.isSupersetOfincore-js - es-shims polyfill of
Set.prototype.isSupersetOf - {{jsxref("Set.prototype.difference()")}}
- {{jsxref("Set.prototype.intersection()")}}
- {{jsxref("Set.prototype.isDisjointFrom()")}}
- {{jsxref("Set.prototype.isSubsetOf()")}}
- {{jsxref("Set.prototype.symmetricDifference()")}}
- {{jsxref("Set.prototype.union()")}}