我想对我的一个电流滤波器添加一个改进,它采用一个集合并通过评级(1/2/3/4/5)对其进行过滤。
目前它只能通过其中一个(1/2/3/4/5)数字进行过滤,但我想过滤所有这些数字或其中的一部分。排序无关紧要。
filter_by_rating: function(rating) {
var filtered;
if (!!rating && rating !== '') {
filtered = this.filter(function(model) {
return model.get("rating") >= parseInt(rating) && model.get("rating") <= parseInt(rating) + 0.5;
});
return new Collection(filtered);
} else {
}
return this;
}
如果在当前函数中它只接受一个数字,我想传递一串数字,例如:“3,4,5”并且它应该过滤并仅带有等级为3 4的模型5
另外,如果我在数组中有数字[“3”,“4”,“5”]我还要过滤“3.5”,“4.5”
答案 0 :(得分:0)
使用indexOf检查评级是否在您的数组中。
filter_by_rating: function(rating){
if(!Array.isArray(rating)) {
rating = [rating];
}
return new Collection(this.filter(function(model){
return rating.indexOf(Math.floor(model.get('rating'))) !== -1;
}));
}