我有两个数组:
var one = [
Object { _id="53c907016b7536a18b0001ab", title="..." },
Object { _id="53c90942b879875e2b0001ec", title="..." }
]
var two = [
Object { _id="53c907016b7536a18b0001ab", title="..." }
]
我希望找到差异,即
[
Object { _id="53c90942b879875e2b0001ec", title="..." }
]
使用underscore.js,我试过:
var difference = _.difference( one, two );
但是返回整个one
数组,而不是差异。
我认为问题是我的数组包含对象而不是基元。如果是这种情况,我如何告诉下划线使用_id
的值进行比较?
答案 0 :(得分:1)
尝试以下,它适用于两个数组
_.reject(one, function(obj){ return _.findWhere(two, obj); });
但是对象应该像下面那样
var one = [
{ _id:"53c907016b7536a18b0001ab", title:"..." },
{ _id:"53c90942b879875e2b0001ec", title:"..." }
]
var two = [
{ _id:"53c907016b7536a18b0001ab", title:"..." }
]