Reputation: 264
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} />)}
Upvotes: 0
Views: 58
Reputation: 941
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' }
]
Upvotes: 0
Reputation: 107
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);
Upvotes: 1