Set.prototype.isSubsetOf()

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

Синтаксис

isSubsetOf(other)

Параметри

other

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

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

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

Опис

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

ABxA,xBA\subseteq B \Leftrightarrow \forall x\in A,\,x\in B

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

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

[!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

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

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

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

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

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