Set.prototype.difference()
Метод difference() (різниця) примірників Set приймає іншу множину та повертає нову множину, що вміщає елементи поточної множини, не присутні в переданій множині.
Синтаксис
difference(other)
Параметри
otherОб'єкт
Set, або множиноподібний об'єкт.
Повернене значення
Новий об'єкт Set, що вміщає елементи поточної множини, не присутні в множині other.
Опис
У математичний спосіб difference визначається так:
І – з використанням діаграми Венна:
Метод 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 }