Set.prototype.isSubsetOf()
En esta página
The isSubsetOf() method of {{jsxref("Set")}} instances takes a set and returns a boolean indicating if all elements of this set are in the given set.
Syntax#
isSubsetOf(other)
Parameters#
other- : A {{jsxref("Set")}} object, or set-like object.
Return value#
true if all elements in this set are also in the other set, and false otherwise.
Description#
In mathematical notation, subset is defined as:
And using Venn diagram:
[!NOTE] The subset relationship is not proper subset, which means
isSubsetOf()returnstrueifthisandothercontain the same elements.
isSubsetOf() 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 more elements in
thisthanother.size, then it directly returnsfalse. - Otherwise, it iterates over the elements in
this, and returnsfalseif any elementeinthiscausesother.has(e)to return a falsy value. Otherwise, it returnstrue.
Examples#
Using isSubsetOf()#
The set of multiples of 4 (<20) is a subset of even numbers (<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
The set of prime numbers (<20) is not a subset of all odd 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(primes.isSubsetOf(odds)); // false
Equivalent sets are subsets of each other:
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
Specifications#
{{Specifications}}
Browser compatibility#
{{Compat}}
See also#
- Polyfill of
Set.prototype.isSubsetOfincore-js - es-shims polyfill of
Set.prototype.isSubsetOf - {{jsxref("Set.prototype.difference()")}}
- {{jsxref("Set.prototype.intersection()")}}
- {{jsxref("Set.prototype.isDisjointFrom()")}}
- {{jsxref("Set.prototype.isSupersetOf()")}}
- {{jsxref("Set.prototype.symmetricDifference()")}}
- {{jsxref("Set.prototype.union()")}}