I wanted to filter Object Array 1 if it’s object value not exist in 2nd object Array. Non-Intersected values from 2nd array
> aaa = [{id:1, name:"abc"}, {id:2, name:"xyz"}],
> bbb = [{group:1}, {group:4}]
> result should be [{id:2, name:"xyz"}]
_.filter(aaa, function(a){
return _.find(bbb, function(b){
return b.id !== a.group;
});
});
But the result is using this code is wrong. please help me here
Advertisement
Answer
Here is a solution based on underscore.
b.id !== a.group -> a.id !== b.group to match your objects’ structure.
Then,
a.id !== b.group -> a.id === b.group and negate the find result, to filter your object properly 😉
const aaa = [{id:1, name:"abc"}, {id:2, name:"xyz"}];
const bbb = [{group:1}, {group:4}];
const result = _.filter(aaa, function(a){
return !_.find(bbb, function(b){
return a.id === b.group;
});
});
console.log(result);<script src="https://underscorejs.org/underscore-min.js"></script>