Spec-Zone.ru › JavaScript

Set.prototype.isDisjointFrom()

Базовая поддержка Недавно появилось

Эта функция работает в последних версиях устройств и браузеров. Эта функция может не работать в более старых версиях устройств или браузеров. Она доступна во всех браузерах с июня 2024 года.

Метод isDisjointFrom() экземпляров Set принимает множество и возвращает булево значение, указывающее, не имеет ли данное множество общих элементов с заданным множеством.

Синтаксис

isDisjointFrom(other)

Параметры

other
Объект Set или множество-подобный объект.

Возвращаемое значение

true, если это множество не имеет общих элементов с множеством other, и false в противном случае.

Описание

Два множества являются непересекающимися, если у них нет общих элементов. В математической нотации:

A не пересекается с B⇔A∩B=∅A\text{ is disjoint from }B \Leftrightarrow A\cap B = \empty

И с использованием диаграммы Венна:

A Venn diagram with two circles. A and B are disjoint because the circles have no region of overlap.

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

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-set.prototype.isdisjointfrom

Совместимость с браузерами

Десктоп Мобильные Сервер
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API