Set.prototype.symmetricDifference()
Базовый уровень Недавно доступно
Эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать в старых устройствах или версиях браузеров. Она доступна во всех браузерах с июня 2024 года.
Метод 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 }
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
symmetricDifference |
122 |
122 |
127 |
108 |
17 |
122 |
127 |
81 |
17 |
26.0 |
122 |
17 |
1.0.0 |
1.42 |
22.0.0 |
Смотрите также
- Полифил
Set.prototype.symmetricDifferenceвcore-js - Полифил es-shims
Set.prototype.symmetricDifference Set.prototype.difference()Set.prototype.intersection()Set.prototype.isDisjointFrom()Set.prototype.isSubsetOf()Set.prototype.isSupersetOf()Set.prototype.union()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/symmetricDifference