【发布时间】:2012-06-25 00:02:25
【问题描述】:
参考以下链接:
https://stackoverflow.com/posts/4391119/revisions
Filter JSON Data with multiple record IDs in jQuery
如果 JSON 中有分层数据怎么办.. 我尝试在该 filterStore 函数中进行修改.. 但没有成功。你能帮我吗?
当前的filterStore是这样的:
var filter = {
"brand_id": [1,2,3],
"productname": new RegExp('(.*?)', 'gi'),
"price": new RegExp('.*?', 'gi')
};
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;
});
}
但是 json 响应是这样的:
[
{
"brandInfo": {
"brand": "Lg",
"productname": "Microwave",
},
"prodInfo": {
"size": "1.5 ltr",
"price": 200,
"color": "black"
},
"Category": "Electronic",
"shop": "Walmart"
}
{
"brandInfo": {
"brand": "Samsung",
"productname": "Microwave",
},
"prodInfo": {
"size": "1.5 ltr",
"price": 250,
"color": "Ivory"
},
"Category": "Electronic",
"shop": "Walmart"
}
{
"brandInfo": {
"brand": "Toshiba",
"productname": "Microwave",
},
"prodInfo": {
"size": "1.6 ltr",
"price": 310,
"color": "Silver"
},
"Category": "Electronic",
"shop": "Walmart"
}
{
"brandInfo": {
"brand": "Hitachi",
"productname": "Microwave",
},
"prodInfo": {
"size": "1.5 ltr",
"price": 280,
"color": "black"
},
"Category": "Electronic",
"shop": "Walmart"
}
]
Joy,你能帮我为这样的分层数据设置过滤器吗?新功能 filterStore?
【问题讨论】:
-
使用 jLinq .. 使处理数据对象成为梦想
标签: jquery regex json filter match