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 }