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

基于Subhaze的名为“filterScore”的函数 ……如果需要将单个值传递给KEY那么工作正常…但我的问题是如果需要解析多个值 ,该怎么办?

例如,有一个名为brand_id的键,它是整数..我想解析那些在JQuery RegExpFilterMatchbrand_id = 1 OR 3 OR 5 OR 7 (多个)的数据…请帮我解决这个家伙!!

我怎样才能做到这一点??

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

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

 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') }; 

工作实例