Set.prototype.intersection()
Метод 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 }