HTTP/2 302
x-cloud-trace-context: c3814c33e581b18da58bdca953fdc5ee
location: /en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/difference
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 07:39:09 GMT
x-served-by: cache-bfi-krnt7300094-BFI, cache-bfi-krnt7300061-BFI, cache-sin-wsss1830083-SIN, cache-bom-vanm7210066-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1766993949.908638,VS0,VE324
vary: Accept
content-length: 88
HTTP/2 200
x-goog-stored-content-length: 151432
x-goog-metageneration: 1
referrer-policy: strict-origin-when-cross-origin
expires: Mon, 29 Dec 2025 08:39:09 GMT
x-goog-hash: crc32c=Ca8j7g==, md5=bRrCEidest38urv+iJpvbQ==
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: 1766970563354100
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: 53d4da9ca7acf36e7ea63abf699cab2c
x-content-type-options: nosniff
content-type: text/html
etag: "6d1ac212275eb2ddfcbabbfe889a6f6d"
cache-control: public, max-age=3600
x-guploader-uploadid: AHVrFxM9Y6JAvgvVsSXNo7pY25yIp4Nrf_JaD271A3CRf0ZhPsZaP8VYZDDrXSn-EyxA4G_pBjZqGQA
strict-transport-security: max-age=63072000
content-encoding: gzip
accept-ranges: bytes
age: 0
date: Mon, 29 Dec 2025 07:39:09 GMT
x-served-by: cache-bfi-kbfi7400064-BFI, cache-bfi-kbfi7400042-BFI, cache-sin-wsat1880066-SIN, cache-bom-vanm7210066-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1766993949.262468,VS0,VE730
vary: Accept-Encoding
content-length: 20388
Set.prototype.difference() - JavaScript | MDN
other
A Set object, or set-like object.
A new Set object containing elements in this set but not in the other set.
In mathematical notation, difference is defined as:
A ∖ B = { x ∊ A ∣ x ∉ B } A\setminus B = \{x\in A\mid x\notin B\}
And using Venn diagram:
difference() 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, its behavior depends on the sizes of this and other:
If there are more elements in this than other.size, 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.
Otherwise, it iterates over the elements in this, and constructs a new set with all elements e in this that cause other.has(e) to return a falsy value.
The order of elements in the returned set is the same as in this.
The following example computes the difference between the set of odd numbers (<10) and the set of perfect squares (<10). The result is the set of odd numbers that are not perfect squares.
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }
Enable JavaScript to view this browser compatibility table.