Set.prototype.isSupersetOf()

Метод isSupersetOf() (є надмножиною щодо) примірників Set приймає множину і повертає булеве значення, що вказує, чи всі елементи заданої множини є в поточній множині.

Синтаксис

isSupersetOf(other)

Параметри

other

Об'єкт Set, або множиноподібний об'єкт.

Повернене значення

true, якщо всі елементи в множині other також присутні в поточній множині, і false в іншому випадку.

Опис

У математичному записі надмножина визначається так:

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

А за допомогою діаграми Венна:

Діаграма Венна з двома колами. A є надмножиною B, тому що B повністю міститься в A.

[!NOTE] Відносини надмножини не є правильною надмножиною, тобто isSupersetOf() повертає true, якщо this і other містять одні й ті ж елементи.

Метод isSupersetOf() приймає множиноподібні об'єкти в параметрі other. Він вимагає, щоб this було справжнім примірником Set, оскільки безпосередньо отримує базові дані, збережені в this, без закликання будь-якого користувацького коду. Далі, його логіка залежить від розмірів this і other:

  • Якщо у this менше елементів, ніж other.size, то він безпосередньо повертає false.
  • Інакше – цей метод ітерує по other, викликаючи її метод keys(), і якщо будь-який елемент в other відсутній в this, то метод isSupersetOf() повертає false (і закриває ітератор keys() шляхом виклику його методу return()). Інакше – він повертає true.

Приклади

Застосування isSupersetOf()

Множина парних чисел (<20) є надмножиною кратних 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

Множина всіх непарних чисел (<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(odds.isSupersetOf(primes)); // false

Рівносильні множини є надмножинами одна одної:

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

Специфікації

Якщо ви це бачите — значить, щось трапилося з цією сторінкою.

Сумісність із браузерами

Якщо ви це бачите — значить, щось трапилося з цією сторінкою.

Дивіться також