Set.prototype.symmetricDifference()
Метод symmetricDifference()
(симетрична різниця) примірників Set
приймає множину і повертає нову множину, що містить елементи, які є в поточній множині або в переданій, але не в них обох.
Синтаксис
symmetricDifference(other)
Параметри
other
Об'єкт
Set
, або множиноподібний об'єкт.
Повернене значення
Новий об'єкт Set
, що містить елементи, які є в поточній множині або в множині other
, але не в них обох.
Опис
У математичному записі симетрична різниця визначається так:
А за допомогою діаграми Венна:
Метод symmetricDifference()
приймає множиноподібні об'єкти в параметрі other
. Він вимагає, щоб this
було справжнім примірником Set
, оскільки безпосередньо отримує базові дані, збережені в this
, без закликання будь-якого користувацького коду. Далі він ітерує по other
, викликавши її метод keys()
, і створює нову множину з усіма елементами this
, які не зустрічаються в other
, і усіма елементами other
, які не зустрічаються в this
.
Порядок елементів у поверненій множині — спочатку ті, що в this
, а потім ті, що в other
.
Приклади
Застосування symmetricDifference()
Наступний приклад обчислює симетричну різницю між множиною парних чисел (<10) і множиною квадратів натуральних чисел (<10). Результатом є множина чисел, які є або парними, або квадратами натуральних чисел, але не і тим, і іншим водночас.
const evens = new Set([2, 4, 6, 8]);
const squares = new Set([1, 4, 9]);
console.log(evens.symmetricDifference(squares)); // Set(5) { 2, 6, 8, 1, 9 }