Set.prototype.intersection()

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

Синтаксис

intersection(other)

Параметри

other

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

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

Новий об'єкт Set, що містить елементи, присутні як у поточній множині, так і в множині other.

Опис

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

AB={xAxB}A\cap B = \\{x\in A\mid x\in B\\}

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

Діаграма Венна, в якій два кола перетинаються. Перетин A і B – це та частина, якою вони накладаються одне на одного.

Метод 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 }

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

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

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

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

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