首页 > 解决方案 > react native:如何过滤特定数据?

问题描述

如何通过获取第二个列表来过滤第一个列表:

这是第一个列表数据:

[
  {
    "stateID": 1,
    "name": "Emergency"
  },
  {
    "stateID": 2,
    "name": "Madame Green"
  },
  {
    "stateID": 3,
    "name": "Madame Yellow"
  },
  {
    "stateID": 4,
    "name": "Madame Red"
  },
  {
    "stateID": 5,
    "name": "Earthquake"
  }
]

这是我想要获得的第二个列表数据:

[
  {
    "stateID": 1,
    "name": "Emergency"
  },
  {
    "stateID": 2,
    "name": "Madame"
  },
  {
    "stateID": 5,
    "name": "Earthquake"
  }
]

这需要是过滤器:

{stateList.filter(option => <Picker.Item label={option.label} key={option.key} value={option.value} />)}

标签: javascriptreactjsreact-nativefilter

解决方案


对于过滤器我会做如下

let data_first = [
  {
    "stateID": 1,
    "name": "Emergency"
  },
  {
    "stateID": 2,
    "name": "Madame Green"
  },
  {
    "stateID": 3,
    "name": "Madame Yellow"
  },
  {
    "stateID": 4,
    "name": "Madame Red"
  },
  {
    "stateID": 5,
    "name": "Earthquake"
  }
];

let data_second = [
  {
    "stateID": 1,
    "name": "Emergency"
  },
  {
    "stateID": 2,
    "name": "Madame"
  },
  {
    "stateID": 5,
    "name": "Earthquake"
  }
]

let res = data_first.filter(v=>!(data_second.some(e=>e.stateID === v.stateID)))

console.log(res);


推荐阅读