partition - 数组元素分组
优质
小牛编辑
133浏览
2023-12-01
根据所提供的函数对每个元素进行迭代,将这些元素分成两个数组。
使用 Array.reduce()
创建两个数组的数组。 使用 Array.push()
将 fn
返回为 true
的元素添加到第一个数组,而 fn
返回 false
的元素到第二个元素。
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 }]]