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