过滤主干集合

时间:2014-02-04 18:31:34

标签: javascript backbone.js

我有一个以下格式的骨干集合,其中一个属性的逗号分隔值

var my_collection = {
    {
       "name" : "test1",
        "field" : "a,b,c"      
    },

    {
       "name" : "test2",
        "field" : "a,c"      
    },

};

我想从上面的集合中过滤值'a'的属性'field',以便它返回test1和test2。

我尝试使用var filtered = my_collection .where({field: 'a'});这将只与“field:a”完全匹配。

当用户给出值“field:a”

时,过滤test1和test2的任何解决方案

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用_.filter - 它就像_.where,除了让你指定一个函数作为谓词。然后使用splitindexOf来检查“字段”是否包含您的项目:

my_collection.filter(function(x) { 
    return x.field && x.field.split(',').indexOf("a") != -1; 
})

Fiddle