Spec-Zone.ru › JavaScript

Set.prototype.symmetricDifference()

Базовый уровень Недавно доступно

Эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать в старых устройствах или версиях браузеров. Она доступна во всех браузерах с июня 2024 года.

Метод symmetricDifference() экземпляров Set принимает множество и возвращает новое множество, содержащее элементы, которые присутствуют либо в этом множестве, либо в данном множестве, но не в обоих.

Синтаксис

symmetricDifference(other)

Параметры

other
Объект Set, или множествоподобный объект.

Возвращаемое значение

Новый объект Set, содержащий элементы, которые присутствуют либо в этом множестве, либо в other множестве, но не в обоих.

Описание

В математической нотации симметрическая разность определяется как:

A⊖B=(A∖B)∪(B∖A)A\ominus B = (A\setminus B)\cup(B\setminus A)

И с помощью диаграммы Венна:

A Venn diagram where two circles overlap. The symmetric difference of A and B is the region contained by either circle but not both.

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 }

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-set.prototype.symmetricdifference

Совместимость с браузерами

Десктопные Мобильные Серверные
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API