首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JSON中查找一组对象

在JSON中查找一组对象
EN

Stack Overflow用户
提问于 2011-10-30 13:20:13
回答 4查看 169关注 0票数 0
代码语言:javascript
运行
复制
[
{"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循环来实现,但是我想知道有没有其他的解决方案。谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-30 13:25:21

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

代码语言:javascript
运行
复制
var children_of_7 = data.filter(function(item) {
    return item.id_parent === 7;
});

如果你的浏览器本身没有这个功能,你可以使用shim it

票数 1
EN

Stack Overflow用户

发布于 2011-10-30 14:05:58

如果您有一个提供ECMAScript第五版实现的浏览器,那么您确实可以这样做:

代码语言:javascript
运行
复制
var filteredResults = data.filter(function(item) {
  return item.id_parent === 7;
});

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

代码语言:javascript
运行
复制
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上看到。

差别是很大的。

票数 1
EN

Stack Overflow用户

发布于 2011-10-30 13:25:47

不,没有。你能做的就是遍历你的JSON。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7943446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档