私は2つのコレクションを持っています:
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
。最も効率的にこれを行うにはどうすればよいですか?
これを行うには2つのオプションを考えましたが、それが最善の方法かどうかはわかりません。オプション 1 はオプション 2 よりも効率的だと思います。
オプション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/
ありがとう!