Javascript 如何根据内部属性过滤JSON树
我必须再次发布更多细节的问题: 我得到了一个JSON树Javascript 如何根据内部属性过滤JSON树,javascript,jquery,json,underscore.js,Javascript,Jquery,Json,Underscore.js,我必须再次发布更多细节的问题: 我得到了一个JSON树数组 JSON树的结构如下所示: { "app": { "categories": { "cat_222": { "id": "555", "deals": [{ "id": "73", "retailer": "JeansWest" }, { "
数组
JSON树的结构如下所示:
{
"app": {
"categories": {
"cat_222": {
"id": "555",
"deals": [{
"id": "73",
"retailer": "JeansWest"
}, {
"id": "8630",
"retailer": "Adidas"
}, {
"id": "11912",
"retailer": "Adidas"
}]
},
"cat_342": {
"id": "232",
"deals": [{
"id": "5698",
"retailer": "KFC"
}, {
"id": "5701",
"retailer": "KFC"
}, {
"id": "5699",
"retailer": "MC"
}]
}
}
}
}
现在,我想用var pattern=“KF”
过滤这个JSON树
返回所有带有retailer
name containsKF
及其id的内容
===============================更新===========================
检查一下我的另一个问题。问题解决了。
嗯,你可以使用:
。。。或:
正如您所看到的,这两种方法非常相似——事实上,如果在主机环境中可用,这两种方法都可以使用
还请注意,原始数组在此不受影响。如果不需要,只需将过滤结果分配给同一个变量(即本例中的arrayOfStrings
)使用,或者如果需要支持IE<9请发布数据示例,以及迄今为止的代码。我假设您已经解析了JSON。如果是,则array
包含一个普通的JS数组。这个问题似乎与JSON无关。另外,下划线.js有文档,为什么不看一下呢。使用lodash而不是下划线。它要快得多。在他们的基准测试中,它比Chrome上的下划线方法快了240%。函数和参数将是相同的。对不起,伙计们,我再次编辑了我的问题。
var filteredArray = _.filter(arrayOfStrings, function(str) {
return str.indexOf(data) !== -1; });
var filteredArray = $.grep(arrayOfStrings, function(str) {
return str.indexOf(data) !== -1; });