2012-06-03 64 views
1

Based on Subhaze's Function named "filterScore"多個記錄ID ......剛剛工作的罰款,如果有單個值需要傳遞給KEY ...但我的問題是,如果有多個值需要被解析什麼?過濾JSON數據與jQuery的

例如像有一個名爲brand_id關鍵是整數。而我想在JQuery中RegExpFilterMatch解析那些具有brand_id = 1 OR 3 OR 5 OR 7(多個)數據......請幫我這個guyz!

我該怎麼做?

真的很感激,如果有人可以幫我這個

回答

1

作爲品牌標識是一個列表,而不是你可以修改過濾函數接受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; 
    }); 
} 

然後你就可以把你所有的品牌標識是一個數組中這樣

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

Working Example

+0

感謝喜悅!它爲我工作..但是會發生什麼......當我們匹配brand_id 1,2或3 ...它也返回記錄包含11,12,13或甚至33,22,11 ..因爲它匹配1,2或者3個關鍵字命名爲「brand_id」..如何解決這個問題? – idleMind

+0

您可以更好地爲'brand_id'傳遞一個數組,因爲您有一組值來檢查而不是'pattern',所以我修改了可以傳遞'brand_id'數組的過濾器函數,請點擊此處http: //jsfiddle.net/joycse06/bsaJm/4/ –

+0

嘿,快樂......感謝很多人..你讓我的一天.. :)但想問是否有任何其他選項沒有循環所有的記錄? ?因爲處理大量記錄需要很長時間。 – idleMind