根据另一个数组中设置的真或假来映射数组

我在 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"},

]

它应该强制检查过滤器。


子衿沉夜
浏览 137回答 1
1回答

慕盖茨4494581

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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript