如何比较 Backbone 中的两个集合?
我有两个集合1C包含1,2,3
,而2C包含2,4,5
,我想要做的是从2C中删除2
,因为1C在正常渲染集合后已经具有2值。
我试过了
this.1C.each(function(model1){
this.2C.each(function(model2){
if(model1 === model2){
2C.remove(model2);
}
});
});
但它不起作用。有任何想法吗?
最佳答案
我会冒险猜测到model1和model2永远不会是模型的同一实例,因此永远不会匹配。您是否尝试过比较型号ID或类似型号?例如。 model1.id == model2.id
也许添加一些调试,以便您可以查看发生了什么。
this.1C.each(function(model1){
console.log('m1:'+model1.categoryCode);
this.2C.each(function(model2){
console.log(' m2:'+model2.categoryCode);
if(model1.categoryCode == model2.categoryCode){
console.log('removing m2:'+model2.categoryCode);
2C.remove(model2);
}
});
});