existing ["562fae5a626ca2e032947baa"]
new array [ { _id: '562fae5a626ca2e032947baa' },
{ _id: '562fae57626ca2e032947ba9' } ]
modified [ { _id: '562fae5a626ca2e032947baa' },
{ _id: '562fae57626ca2e032947ba9' } ]
我有一个
existing
数组和一个new
数组,我想compare
existing
和new array
并删除duplicates
。var existing = ["562fae5a626ca2e032947baa"];
var newArr = [ { _id: '562fae5a626ca2e032947baa' },
{ _id: '562fae57626ca2e032947ba9' } ];
newArr = newArr.filter(function(val){
return existing.indexOf(val) == -1;
});
console.log(newArr);
当我尝试打印newArr时,我仍然得到两个对象?
modified [ { _id: '562fae5a626ca2e032947baa' },
{ _id: '562fae57626ca2e032947ba9' } ]
我只想要修改后的数组。
modified [{ _id: '562fae57626ca2e032947ba9' } ]
下面是小提琴。
http://jsfiddle.net/ema6upg1/2/
最佳答案
newArr.filter(function(val){
return existing.indexOf(val._id) == -1;
})
是您需要的,val是一个对象,您需要比较其_id