existing ["562fae5a626ca2e032947baa"]

new array [ { _id: '562fae5a626ca2e032947baa' },
  { _id: '562fae57626ca2e032947ba9' } ]

modified [ { _id: '562fae5a626ca2e032947baa' },
  { _id: '562fae57626ca2e032947ba9' } ]


我有一个existing数组和一个new数组,我想compare existingnew 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

08-03 23:48