Магистральная коллекция, где предложение с условием ИЛИ
Я искал это в течение довольно долгого времени, но не смог найти способ с предложением where или условием. Например, если у меня есть коллекция Cars
и я пытаюсь сделать следующее:
Cars.where({
model: 1998,
color: 'Black',
make: 'Honda'
})
Итак, что будет сделано выше, это поиск car
чья model
является 1998
А ТАКЖЕ color
является Black
А ТАКЖЕ make
является Honda
,
Но мне нужен способ получить cars
которые имеют одно из трех условий.
2 ответа
Cars.filter(function(car) {
return car.get("model") === 1998 ||
car.get("color") === "Black" ||
car.get("make") === "Honda";
});
Я знаю, что это старый пост, но, может быть, это кому-нибудь пригодится.
У меня была похожая проблема, но немного проще, вот как я ее решил
var ids=[1,2,3,4];
var plans=this.collection.filter(function(plan){
var rt=false;
for(var i=0;i<this.whereOR.length;i++){
rt=rt||plan.get('id')==this.whereOR[i];
}
return rt;
},{whereOR:ids});
Я думаю, что это может быть адаптировано для решения предложенной проблемы следующим образом:
var search={model: 1998,color: 'Black',make: 'Honda'};
Cars.filter(function(car){
var rt=false;
for(key in this.whereOR) {
rt=rt||car.get(key)==this.whereOR[key];
}
return rt;
},{whereOR:search});)
Надеюсь, это поможет кому-то!