Set.prototype.intersection()
Базовая поддержка Недавно появилась
Эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или версиях браузеров. Она доступна во всех браузерах с июня 2024 года.
Метод intersection() экземпляров Set принимает множество и возвращает новое множество, содержащее элементы, находящиеся как в этом множестве, так и в заданном множестве.
Синтаксис
intersection(other)
Параметры
-
other - Объект
Setили подобный множеству объект.
Возвращаемое значение
Новый объект Set, содержащий элементы, находящиеся как в этом множестве, так и в множестве other.
Описание
В математической нотации пересечение определяется как:
Используя диаграмму Венна:
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 }
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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