reducedFilter - 过滤对象数组
优质
小牛编辑
136浏览
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'}]