[
{"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循环来做到这一点,但我想知道有任何替代解决方案来做到这一点。谢谢
答案 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提供了一些有趣的搜索功能: