在jQuery中使用多个记录ID过滤JSON数据
基于Subhaze的名为“filterScore”的函数 ……如果需要将单个值传递给KEY
那么工作正常…但我的问题是如果需要解析多个值 ,该怎么办?
例如,有一个名为brand_id
的键,它是整数..我想解析那些在JQuery RegExp
, Filter
, Match
有brand_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') };
工作实例