[
{"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循环来实现,但是我想知道有没有其他的解决方案。谢谢
发布于 2011-10-30 13:25:21
如果你的浏览器有Array.filter
,你可以这样做:
var children_of_7 = data.filter(function(item) {
return item.id_parent === 7;
});
如果你的浏览器本身没有这个功能,你可以使用shim it。
发布于 2011-10-30 14:05:58
如果您有一个提供ECMAScript第五版实现的浏览器,那么您确实可以这样做:
var filteredResults = data.filter(function(item) {
return item.id_parent === 7;
});
否则,你很好的ole循环就是解决方案:
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上看到。
差别是很大的。
发布于 2011-10-30 13:25:47
不,没有。你能做的就是遍历你的JSON。
https://stackoverflow.com/questions/7943446
复制相似问题