Javascript Backbone.js过滤器集合

Javascript Backbone.js过滤器集合,javascript,backbone.js,Javascript,Backbone.js,我正在尝试通过一些数组值筛选集合。我想做的是返回一个包含我得到的匹配项的新集合。我将整数数组与整数集合进行比较。但如果比较值大于10,则不起作用。因此,新的过滤集合的整数永远不会超过10。只有从1到9的整数。为什么呢 这是代码 filter: function(f) { //f is an array containing ints, like [2,14,9,3] etc var filter = this.collection.filter(function(o){

我正在尝试通过一些数组值筛选集合。我想做的是返回一个包含我得到的匹配项的新集合。我将整数数组与整数集合进行比较。但如果比较值大于10,则不起作用。因此,新的过滤集合的整数永远不会超过10。只有从1到9的整数。为什么呢

这是代码

    filter: function(f) { //f is an array containing ints, like [2,14,9,3] etc
    var filter = this.collection.filter(function(o){ 
        var accept = false;                                    
        $(f).each(function(i,val){
            if(_.indexOf(o.get('tags'), val) >-1){
                accept = true;                      
            }
        })

        return accept; 
    });

    var filtered = new PeopleCollection(filter);
    new PeopleView({
        el: this.$('.peoplelist'),
        collection: filtered
    });
}

如果
f
是一个
数组
,那么为什么要尝试将它包装在jQuery对象中:
$(f)
?你想通过这种奇怪的方式实现什么?迭代数组元素?您可以通过数组的内置方法实现这一点:我希望找到2个数组中的所有匹配项,然后创建一个包含所有匹配索引的新数组(已筛选)。请尝试将您的比较器逻辑记录到控制台中:\ u0.indexOf(o.get('tags'),val)>-1这可能是您的问题所在。确实如此。问题是我已经运行了indexOf,这将不起作用。假设它比较2和12。然后它会选择12分之2作为匹配。但事实并非如此。我如何解决这个问题?这就是为什么它适用于indez小于10的所有项目。