在JSON中查找一组对象

时间:2011-10-30 05:20:13

标签: javascript jquery json

[
{"id":1,"id_parent":7,"name":"sub category of cat 7-1"}, 
{"id":2,"id_parent":7,"name":"sub category of cat 7-2"},
{"id":3,"id_parent":8,"name":"sub category of cat 8-1"},
{"id":4,"id_parent":8,"name":"sub category of cat 8-2"}
]

我想在更大的组中找到一组对象。例如,只需获取id_parent = 7的对象。现在我使用for循环来做到这一点,但我想知道有任何替代解决方案来做到这一点。谢谢

4 个答案:

答案 0 :(得分:1)

如果您的浏览器有Array.filter,则可以执行此操作:

var children_of_7 = data.filter(function(item) {
    return item.id_parent === 7;
});

如果您的浏览器本身没有,则可以shim it

答案 1 :(得分:1)

如果您的浏览器提供了ECMAScript 5th Edition,那么您确实可以这样做:

var filteredResults = data.filter(function(item) {
  return item.id_parent === 7;
});

否则你的好的循环就是解决方案:

var filteredResults = [];
for (var i = 0, l = data.length; i < l; i++) {
  if (data[i].id_parent === 7) {
    filteredResults.push(data[i]);
  }
}

但请记住,至少AFAIK,filter会有性能损失。

我已经进行了一些快速测试以供参考 - 可以看到here

,差异很大。

答案 2 :(得分:0)

不,没有。你所能做的只是循环你的JSON。

答案 3 :(得分:0)

underscore.js提供了一些有趣的搜索功能:

http://documentcloud.github.com/underscore/