Set.prototype.difference()
En esta página
The difference() method of {{jsxref("Set")}} instances takes a set and returns a new set containing elements in this set but not in the given set.
Syntax#
difference(other)
Parameters#
other- : A {{jsxref("Set")}} object, or set-like object.
Return value#
A new {{jsxref("Set")}} object containing elements in this set but not in the other set.
Description#
In mathematical notation, difference is defined as:
And using Venn diagram:
difference() accepts set-like objects as the other parameter. It requires {{jsxref("this")}} to be an actual {{jsxref("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
thisthanother.size, then it iterates overotherby calling itskeys()method, and constructs a new set with all elements inthisthat are not seen inother. - Otherwise, it iterates over the elements in
this, and constructs a new set with all elementseinthisthat causeother.has(e)to return a falsy value.
The order of elements in the returned set is the same as in this.
Examples#
Using difference()#
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 }
Specifications#
{{Specifications}}
Browser compatibility#
{{Compat}}
See also#
- Polyfill of
Set.prototype.differenceincore-js - es-shims polyfill of
Set.prototype.difference - {{jsxref("Set.prototype.intersection()")}}
- {{jsxref("Set.prototype.isDisjointFrom()")}}
- {{jsxref("Set.prototype.isSubsetOf()")}}
- {{jsxref("Set.prototype.isSupersetOf()")}}
- {{jsxref("Set.prototype.symmetricDifference()")}}
- {{jsxref("Set.prototype.union()")}}