20 lines
731 B
Markdown
20 lines
731 B
Markdown
### partition
|
|
|
|
Groups the elements into two arrays, depending on the provided function's truthiness for each element.
|
|
|
|
Use `Array.reduce()` to create an array of two arrays.
|
|
Use `Array.push()` to add elements for which `fn` returns `true` to the first array and elements for which `fn` returns `false` to the second one.
|
|
|
|
```js
|
|
const partition = (arr, fn) =>
|
|
arr.reduce((acc, val, i, arr) => {acc[fn(val,i,arr) ? 0 :1].push(val); return acc;},[[],[]]);
|
|
```
|
|
|
|
```js
|
|
var users = [
|
|
{ 'user': 'barney', 'age': 36, 'active': false },
|
|
{ 'user': 'fred', 'age': 40, 'active': true }
|
|
];
|
|
partition(users, o => o.active) // [[{ 'user': 'fred', 'age': 40, 'active': true }],[{ 'user': 'barney', 'age': 36, 'active': false }]]
|
|
```
|