Set.prototype.symmetricDifference()

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

Синтаксис

symmetricDifference(other)

Параметри

other

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

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

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

Опис

У математичному записі симетрична різниця визначається так:

AB=(AB)(BA)A\ominus B = (A\setminus B)\cup(B\setminus A)

А за допомогою діаграми Венна:

Діаграма Венна з двома колами, що перетинаються. Симетрична різниця A і B — це область, що міститься в будь-якому з кіл, але не в обох.

Метод 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 }

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

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

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

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

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