Set.prototype.isSubsetOf()
Метод isSubsetOf() (є підмножиною щодо) примірників Set приймає множину і повертає булеве значення, що вказує, чи всі елементи поточної множини присутні в переданій множині.
Синтаксис
isSubsetOf(other)
Параметри
otherОб'єкт
Set, або множиноподібний об'єкт.
Повернене значення
true, якщо всі елементи поточної множини також присутні в множині other, і false в іншому випадку.
Опис
У математичному записі підмножина визначається як:
А за допомогою діаграми Венна:
[!NOTE] Відношення підмножини не є справжньою підмножиною, тобто
isSubsetOf()повертаєtrue, якщоthisіotherмістять одні й ті ж елементи.
Метод isSubsetOf() приймає множиноподібні об'єкти в параметрі other. Він вимагає, щоб this було справжнім примірником Set, оскільки безпосередньо отримує базові дані, збережені в this, без закликання будь-якого користувацького коду. Далі, його логіка залежить від розмірів this і other:
- Якщо у
thisбільше елементів, ніжother.size, то метод безпосередньо повертаєfalse. - Інакше – він ітерує по елементах
this, і повертаєfalse, якщо будь-який елементeуthisзмушуєother.has(e)повернути хибне значення. Інакше, він повертаєtrue.
Приклади
Застосування isSubsetOf()
Множина кратних 4 (<20) є підмножиною парних чисел (<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
Множина простих чисел (<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(primes.isSubsetOf(odds)); // false
Рівносильні множини є підмножинами одна одної:
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