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.

The isSupersetOf() method of Set instances takes a set and returns a boolean indicating if all elements of the given set are in this set.

Syntax

js
isSupersetOf(other)

Parameters

other

A 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:

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

And using Venn diagram:

A Venn diagram with two circles. A is a superset of B because B is completely contained in A.

Note: The superset relationship is not proper superset, which means isSupersetOf() returns true if this and other contain the same elements.

isSupersetOf() accepts set-like objects as the other parameter. It requires this to be an actual 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 this than other.size, then it directly returns false.
  • Otherwise, it iterates over other by calling its keys() method, and if any element in other is not present in this, it returns false (and closes the keys() iterator by calling its return() method). Otherwise, it returns true.

Examples

Using isSupersetOf()

The set of even numbers (<20) is a superset of multiples of 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

The set of all odd numbers (<20) is not a superset of prime numbers (<20), because 2 is prime but not odd:

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

Equivalent sets are supersets of each other:

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

Specifications

Specification
Set methods
# sec-set.prototype.issupersetof

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isSupersetOf

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

See also