reducedFilter - 过滤对象数组
优质
小牛编辑
132浏览
2023-12-01
根据条件过滤一个对象数组,同时过滤掉未指定的键(key)。
使用 Array.filter()
根据断言 fn
过滤数组,以便返回条件为真值(truthy)的对象。 在过滤出来的数组上,使用 Array.map()
和 Array.reduce()
返回新的对象来过滤掉 keys
参数中未提供的键。
const reducedFilter = (data, keys, fn) => data.filter(fn).map(el => keys.reduce((acc, key) => { acc[key] = el[key]; return acc; }, {}) );
const data = [ { id: 1, name: 'john', age: 24 }, { id: 2, name: 'mike', age: 50 } ]; reducedFilter(data, ['id', 'name'], item => item.age > 24); // [{ id: 2, name: 'mike'}]