HTTP/2 302
x-cloud-trace-context: 3e9a04111a19670736a6fed0a4e2e5b2
location: /en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/symmetricDifference
via: 1.1 google, 1.1 varnish, 1.1 varnish, 1.1 varnish, 1.1 varnish
accept-ranges: bytes
cache-control: no-store
server: Google Frontend
content-type: text/plain; charset=utf-8
date: Mon, 29 Dec 2025 18:39:12 GMT
x-served-by: cache-bfi-kbfi7400108-BFI, cache-bfi-kbfi7400108-BFI, cache-sin-wsss1830072-SIN, cache-bom-vanm7210073-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1767033553.624275,VS0,VE284
vary: Accept
content-length: 97
HTTP/2 200
x-goog-stored-content-length: 151154
x-goog-metageneration: 1
referrer-policy: strict-origin-when-cross-origin
expires: Mon, 29 Dec 2025 19:39:13 GMT
x-goog-hash: crc32c=3TlSRA==, md5=A7YP6F43Wb0RK14u3t9+lw==
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://*.googletagmanager.com assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://*.googletagmanager.com assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' mdn.github.io *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-goog-meta-goog-reserved-file-mtime: 1766969646
x-frame-options: DENY
x-goog-stored-content-encoding: identity
x-goog-generation: 1766970563434811
via: 1.1 google, 1.1 varnish, 1.1 varnish, 1.1 varnish, 1.1 varnish
server: Google Frontend
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
last-modified: Mon, 29 Dec 2025 01:09:23 GMT
x-goog-storage-class: STANDARD
x-cloud-trace-context: 2ebaf4085db50a5ddce1ae83fef68ae3
x-content-type-options: nosniff
content-type: text/html
etag: "03b60fe85e3759bd112b5e2ededf7e97"
cache-control: public, max-age=3600
x-guploader-uploadid: AHVrFxMPegZDLlSVr4YAAJBgW5WXGL4AtfRX__8PEYSf_O3xAyX1jNiqeNyjMuxj2qjeQb-_oYi4ZPU
strict-transport-security: max-age=63072000
content-encoding: gzip
accept-ranges: bytes
age: 0
date: Mon, 29 Dec 2025 18:39:13 GMT
x-served-by: cache-bfi-kbfi7400087-BFI, cache-bfi-kbfi7400087-BFI, cache-sin-wsss1830020-SIN, cache-bom-vanm7210073-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1767033553.922689,VS0,VE368
vary: Accept-Encoding
content-length: 20286
Set.prototype.symmetricDifference() - JavaScript | MDN
symmetricDifference(other)
other
A Set object, or set-like object.
A new Set object containing elements which are in either this set or the other set, but not in both.
In mathematical notation, symmetric difference is defined as:
A ⊖ B = ( A ∖ B ) ∪ ( B ∖ A ) A\ominus B = (A\setminus B)\cup(B\setminus A)
And using Venn diagram:
symmetricDifference() accepts set-like objects as the other parameter. It requires this to be an actual Set instance, because it directly retrieves the underlying data stored in this without invoking any user code. Then, it iterates over other by calling its keys() method, and constructs a new set with all elements in this that are not seen in other, and all elements in other that are not seen in this.
The order of elements in the returned set is first those in this followed by those in other.
The following example computes the symmetric difference between the set of even numbers (<10) and the set of perfect squares (<10). The result is the set of numbers that are either even or a perfect square, but not both.
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 }
Enable JavaScript to view this browser compatibility table.