我有一个数组项“ mockData”和一个过滤器数组“ filter”(角度8):
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的嘲笑数据的列。
结果应如下所示。
[
{name:"test"},
{name:"test2"},
{name:"test3"},
{name:"test4"},
]
应强制检入过滤器。
答案 0 :(得分:1)
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);