我在 angular 8 中有一个项目“mockData”的数组和一个过滤器数组“filter”:filter=[{column:"name",show:true},{column:"Sex",show:false},];mockData=[{name:"test",sex:"m"},{name:"test2",sex:"m"},{name:"test3",sex:"f"},{name:"test4",sex:"f"},];我只想映射在过滤器数组中设置为 true 的 mockData 列。结果应该是这样的。[{name:"test"},{name:"test2"},{name:"test3"},{name:"test4"},]它应该强制检查过滤器。
1 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
const filter = [
{
column: "name",
show: true
},
{
column: "sex",
show: false
}
];
const mockData = [
{
name: "test",
sex: "m"
},
{
name: "test2",
sex: "m"
},
{
name: "test3",
sex: "f"
},
{
name: "test4",
sex: "f"
}
];
const filteredMockData = mockData.map(data =>
Object.entries(data).reduce(
(result, [key, value]) =>
filter.find(f => f.column === key && f.show)
? { ...result, [key]: value }
: result,
{}
)
);
console.log(filteredMockData);
添加回答
举报
0/150
提交
取消