为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2021-12-02 15:03:14
我在 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);


查看完整回答
反对 回复 2021-12-02
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信