added symmetric difference note to Array difference

This commit is contained in:
xaveyaguarez
2017-12-14 23:51:01 -08:00
parent ddbcf68456
commit 7f0fc22cca

View File

@ -3,6 +3,14 @@
Create a `Set` from `b`, then use `Array.filter()` on `a` to only keep values not contained in `b`. Create a `Set` from `b`, then use `Array.filter()` on `a` to only keep values not contained in `b`.
```js ```js
const difference = (a, b) => { const s = new Set(b); return a.filter(x => !s.has(x)); }; const difference = (a, b) => { const s = new Set(b); a.filter(x => !s.has(x)); };
// difference([1,2,3], [1,2]) -> [3] // difference([1,2,3], [1,2,4]) -> [3]
```
This function can also be used to generate the symmetric difference or disjunctive union by swapping the
arrays and combining the results.
```js
const symmetricDifference = (a, b) => [...difference(a,b), ...difference(b,a)];
// difference([1,2,3], [1,2,4]) -> [3,4]
``` ```