Set.prototype.isDisjointFrom()
Базовая поддержка Недавно появилось
Эта функция работает в последних версиях устройств и браузеров. Эта функция может не работать в более старых версиях устройств или браузеров. Она доступна во всех браузерах с июня 2024 года.
Метод isDisjointFrom() экземпляров Set принимает множество и возвращает булево значение, указывающее, не имеет ли данное множество общих элементов с заданным множеством.
Синтаксис
isDisjointFrom(other)
Параметры
-
other - Объект
Setили множество-подобный объект.
Возвращаемое значение
true, если это множество не имеет общих элементов с множеством other, и false в противном случае.
Описание
Два множества являются непересекающимися, если у них нет общих элементов. В математической нотации:
И с использованием диаграммы Венна:
isDisjointFrom() принимает множество-подобные объекты в качестве параметра other. Он требует, чтобы this был фактическим экземпляром Set, потому что он напрямую извлекает базовые данные, хранящиеся в this, не вызывая при этом пользовательский код. Затем его поведение зависит от размеров this и other:
- Если в
thisбольше элементов, чем вother.size, то он выполняет итерацию поother, вызывая его методkeys(), и если какой-либо элемент вotherприсутствует вthis, он возвращаетfalse(и закрывает итераторkeys(), вызывая его методreturn()). В противном случае он возвращаетtrue. - В противном случае он выполняет итерацию по элементам в
thisи возвращаетfalse, если какой-либо элементeвthisприводит к тому, чтоother.has(e)возвращает истинное значение. В противном случае он возвращаетtrue.
Из-за этой реализации эффективность isDisjointFrom() в основном зависит от размера меньшего множества между this и other (при условии, что доступ к элементам множеств может быть получен за сублинейное время).
Примеры
Использование isDisjointFrom()
Множество точных квадратов (<20) не пересекается с множеством простых чисел (<20), поскольку точный квадрат по определению разложим на произведение двух целых чисел, а 1 также не считается простым числом:
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]); const squares = new Set([1, 4, 9, 16]); console.log(primes.isDisjointFrom(squares)); // true
Множество точных квадратов (<20) не является непересекающимся с множеством составных чисел (<20), поскольку все точные квадраты, кроме 1, по определению являются составными числами:
const composites = new Set([4, 6, 8, 9, 10, 12, 14, 15, 16, 18]); const squares = new Set([1, 4, 9, 16]); console.log(composites.isDisjointFrom(squares)); // false
Спецификации
Совместимость с браузерами
| Десктоп | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в iOS | Samsung Internet | WebView Android | WebView в iOS | Bun | Deno | Node.js | |
isDisjointFrom |
122 |
122 |
127 |
108 |
17 |
122 |
127 |
81 |
17 |
26.0 |
122 |
17 |
1.0.0 |
1.42 |
22.0.0 |
Смотрите также
- Полифил
Set.prototype.isDisjointFromвcore-js - Полифил es-shims
Set.prototype.isDisjointFrom Set.prototype.difference()Set.prototype.intersection()Set.prototype.isSubsetOf()Set.prototype.isSupersetOf()Set.prototype.symmetricDifference()Set.prototype.union()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/isDisjointFrom