Set.prototype.difference()

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

Синтаксис

difference(other)

Параметри

other

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

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

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

Опис

У математичний спосіб difference визначається так:

AB={xAxB}A\setminus B = {x\in A\mid x\notin B}

І – з використанням діаграми Венна:

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

Метод difference() приймає множиноподібні об'єкти як параметр other. Він вимагає, щоб this був справжнім екземпляром Set, оскільки він безпосередньо отримує дані, збережені в this, без виклику будь-якого користувацького коду. Потім його поведінка залежить від розмірів this та other:

  • Якщо число елементів у this перевищує other.size, то він ітерує по other, викликаючи її метод keys(), і конструює нову множину з елементів this, не помічених в other.
  • Інакше – він ітерує по елементах this і конструює нову множину з усіх елементів e в this, які змушують other.has(e) повернути хибне значення.

Порядок елементів у поверненій множині – такий же, як у this.

Приклади

Застосування difference()

Наступний приклад обчислює різницю між множиною непарних чисел (<10) та множиною цілих квадратів (<10). Результат – множина непарних чисел, які не є цілими квадратами.

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

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

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

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

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

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