我有两个收藏:
A
用model1
,model2
,model3
,收集model4
。B
与model2
,的集合model3
。
例如:
var model1 = new models.ExModel({id: "1", name: "model1"});
var model2 = new models.ExModel({id: "2", name: "model2"});
var model3 = new models.ExModel({id: "3", name: "model3"});
var model4 = new models.ExModel({id: "4", name: "model4"});
var A = new collections.ExCol([ model1, model2, model3, model4 ]);
var B = new collections.ExCol([ model2, model3 ]);
我想获得一组A
不包含在B
. 例如,我想得到一个带有model1
and的数组model4
。我怎样才能最有效地做到这一点?
我想了两种方法来做到这一点,但我不知道是否是最好的方法。我认为 Option1 比 Option2 更有效。
选项1:
var idsB = B.pluck("id");
var result = A.filter( function(m) { return idsB.indexOf(m.id) === -1; } );
选项2:
var result = A.filter( function(m) { return !B.contains(m); });
完整示例:http: //jsfiddle.net/VH3HU/
谢谢!