Spec-Zone.ru › JavaScript

Set.prototype.intersection()

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

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

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

Синтаксис

intersection(other)

Параметры

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

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

Новый объект Set, содержащий элементы, находящиеся как в этом множестве, так и в множестве other.

Описание

В математической нотации пересечение определяется как:

A∩B={x∊A∣x∊B}A\cap B = \\{x\in A\mid x\in B\\}

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

A Venn diagram where two circles overlap. The intersection of A and B is the part where they overlap.

intersection() принимает подобные множеству объекты в качестве параметра other. Он требует, чтобы this был фактическим экземпляром Set, потому что он напрямую извлекает базовые данные, хранящиеся в this, без вызова пользовательского кода. Затем его поведение зависит от размеров this и other:

  • Если в this больше элементов, чем в other.size, то он выполняет итерацию по other, вызывая его метод keys(), и конструирует новое множество со всеми сгенерированными элементами, которые также присутствуют в this.
  • В противном случае он выполняет итерацию по элементам в this и конструирует новое множество со всеми элементами e в this, которые приводят к тому, что other.has(e) возвращает истинное значение.

Благодаря этой реализации, эффективность intersection() в основном зависит от размера меньшего множества между this и other (при условии, что доступ к множествам может быть получен за сублинейное время). Порядок элементов в возвращаемом множестве такой же, как и в меньшем из this и other.

Примеры

Использование intersection()

В следующем примере вычисляется пересечение множества нечетных чисел (<10) и множества полных квадратов (<10). Результатом является множество нечетных чисел, которые являются полными квадратами.

const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.intersection(squares)); // Set(2) { 1, 9 }

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-set.prototype.intersection

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

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
intersection
122
122
127
108
17
122
127
81
17
26.0
122
17
1.0.0
1.42
22.0.0

См. также

  • Полифил Set.prototype.intersection в core-js
  • Полифил es-shims для Set.prototype.intersection
  • Set.prototype.difference()
  • Set.prototype.isDisjointFrom()
  • 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/intersection

Spec-Zone.ru

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