Set.prototype.isSupersetOf()
Метод isSupersetOf()
(є надмножиною щодо) примірників Set
приймає множину і повертає булеве значення, що вказує, чи всі елементи заданої множини є в поточній множині.
Синтаксис
isSupersetOf(other)
Параметри
other
Об'єкт
Set
, або множиноподібний об'єкт.
Повернене значення
true
, якщо всі елементи в множині other
також присутні в поточній множині, і false
в іншому випадку.
Опис
У математичному записі надмножина визначається так:
А за допомогою діаграми Венна:
[!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