Add set operations. Union, intersect and difference
This commit is contained in:
8
snippets/array-difference.md
Normal file
8
snippets/array-difference.md
Normal file
@ -0,0 +1,8 @@
|
||||
### Array difference (complement)
|
||||
|
||||
Create a `Set` from `b`, then use `Array.filter()` on `a` to only keep values not contained in `b`.
|
||||
|
||||
```js
|
||||
const difference = (a, b) => { const s = new Set(b); return a.filter(x => !s.has(x)); }
|
||||
// difference([1,2,3], [1,2]) -> [3]
|
||||
```
|
||||
8
snippets/array-intersection.md
Normal file
8
snippets/array-intersection.md
Normal file
@ -0,0 +1,8 @@
|
||||
### Array intersection (Common values between two arrays)
|
||||
|
||||
Create a `Set` from `b`, then use `Array.filter()` on `a` to only keep values contained in `b`.
|
||||
|
||||
```js
|
||||
const intersection = (a, b) => { const s = new Set(b); return a.filter(x => s.has(x)); }
|
||||
// intersection([1,2,3], [4,3,2]) -> [2,3]
|
||||
```
|
||||
8
snippets/array-union.md
Normal file
8
snippets/array-union.md
Normal file
@ -0,0 +1,8 @@
|
||||
### Array union
|
||||
|
||||
Create a `Set` with all values of `a` and `b` and convert to an array.
|
||||
|
||||
```js
|
||||
const union = (a, b) => Array.from(new Set([...a, ...b]))
|
||||
// union([1,2,3], [4,3,2]) -> [1,2,3,4]
|
||||
```
|
||||
@ -1,8 +0,0 @@
|
||||
### Difference between arrays
|
||||
|
||||
Use `filter()` to remove values that are part of `values`, determined using `includes()`.
|
||||
|
||||
```js
|
||||
const difference = (arr, values) => arr.filter(v => !values.includes(v));
|
||||
// difference([1,2,3], [1,2]) -> [3]
|
||||
```
|
||||
Reference in New Issue
Block a user