Javascript 在JSON中查找一组对象

Javascript 在JSON中查找一组对象,javascript,jquery,json,Javascript,Jquery,Json,我想在一个更大的组中找到一组对象。例如,只需获取id_parent=7的对象。现在我使用for循环来实现这一点,但我想知道是否有其他解决方案可以实现这一点。谢谢你如果你的浏览器有,你可以这样做: [ {"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 c

我想在一个更大的组中找到一组对象。例如,只需获取id_parent=7的对象。现在我使用for循环来实现这一点,但我想知道是否有其他解决方案可以实现这一点。谢谢你

如果你的浏览器有,你可以这样做:

[
{"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"}
]

如果您的浏览器没有自带,您可以。

没有。您所能做的就是循环浏览JSON。

下划线.js提供了一些有趣的搜索功能:


如果您的浏览器提供了ECMAScript第5版的实现,那么您确实可以:

var children_of_7 = data.filter(function(item) {
    return item.id_parent === 7;
});
否则,好的ole循环就是解决方案:

var filteredResults = data.filter(function(item) {
  return item.id_parent === 7;
});
var filteredResults=[];
对于(变量i=0,l=data.length;i
但是,请记住,至少在aik,
过滤器
有性能损失

我已经收集了一些快速测试供参考-可以看到


差别是巨大的。

自我提醒:让下一位面试应聘者在不使用for循环的情况下完成这项工作。
var filteredResults = [];
for (var i = 0, l = data.length; i < l; i++) {
  if (data[i].id_parent === 7) {
    filteredResults.push(data[i]);
  }
}