Array.prototype.reduce()
to create an array of two arrays.Array.prototype.push()
to add elements for which fn
returns true
to the first array and elements for which fn
returns false
to the second one.const partition = (arr, fn) => arr.reduce( (acc, val, i, arr) => { acc[fn(val, i, arr) ? 0 : 1].push(val); return acc; }, [[], []] );
const 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 }] // ]
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️