在jQuery中使用多个记录ID过滤JSON数据

时间:2012-06-03 12:31:36

标签: jquery regex json filter match

Based on Subhaze's Function named "filterScore" ...如果需要将单个值传递给KEY,那么工作正常......但我的问题是如果多个值会怎么样?需要解析?

例如,有一个名为brand_id的键是整数。我想解析JQuery brand_id = 1 OR 3 OR 5 OR 7 RegExpFilter(多个)的那些数据。{{1} },Match ...请帮我解决这个问题!!

我该怎么做?

如果有人能帮助我,我真的很感激

1 个答案:

答案 0 :(得分:1)

由于品牌ID是列表而非模式,因此您可以修改过滤器功能以接受brand_id作为数组而不是regex。新的过滤功能将是

function filterStore(dataStore, filter) {
    return $(dataStore).filter(function(index, item) {
        for( var i in filter ) {
            if(filter[i] instanceof Array){   
              if($.inArray(parseInt(item[i],10),filter[i]) == -1)
                 return null;
              else
                 continue;                  
            }
           if( ! item[i].toString().match( filter[i] ) ) return null;
        }
        return item;
    });
}

然后,您可以将所有品牌ID放在这样的数组中

var filter = {
    "brand_id": [1,2,3],
    "productname": new RegExp('(.*?)', 'gi'),
    "price": new RegExp('.*?', 'gi')
};

Working Example