Backbone通过评级过滤模型的最佳方式

时间:2014-03-12 14:18:43

标签: javascript backbone.js

我想对我的一个电流滤波器添加一个改进,它采用一个集合并通过评级(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”

1 个答案:

答案 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;
  }));
}
相关问题