简体   繁体   English

react native:如何过滤特定数据?

[英]react native : how to filter specific data?

How do I filter the first list by getting the second list :如何通过获取第二个列表来过滤第一个列表:

this is the first list data :这是第一个列表数据:

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

this is the second list data that i want get:这是我想要获得的第二个列表数据:

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

this needs be the filter :这需要是过滤器:

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

For filter i would do as follows对于过滤器,我会做如下

 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);

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

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


let arr1 = d1.filter(e => {
   return d2.some(item => item.stateID === e.stateID); // take the ! out and you're done
});

Output:输出:

Output: [
  { stateID: 1, name: 'Emergency' },
  { stateID: 2, name: 'Madame Green' },
  { stateID: 5, name: 'Earthquake' }
]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM