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 }