这是有问题的数据结构:
"EditedArticles" : {
"a3" : {
"versions" : [ {
"moment" : "a3",
"question" : "a3",
"situation" : "a3",
"version" : 1
}, ...
]
}
}
目前,我使用三个for循环来访问EditedArticles.a3.versions中的属性
var getArticlesByMoment = function (moment,situation) {
angular.forEach(items, function(article, value) {//items are a1,a2,a3...
angular.forEach(article, function(versions, value) {//versions is the array containing version for each article
var checkfirst=0;
angular.forEach(versions, function(version, value) {//version is the version of an article
checkfirst++;
if (checkfirst == 1 && version.moment == moment && version.situation == situation) {
//do something;
return;
}
})
})
})
}
我想访问每个项目(例如a3)的versions数组中的属性,以检查项目是否具有与所需项目相同的时刻/情况。如果有很多项目,a1 - a1000,那么我认为这需要很长的运行时间。每个版本数组中可能有许多对象,但我只需要检查第一个对象的匹配时刻和情况,因为其余对象将共享这两个属性的相同值。
是否有更好/更快的方式来访问这些属性?我正在使用http GET调用来获取EditedArticles.json中的所有项目(例如a3)
谢谢
答案 0 :(得分:0)
你可以这样做来递归地遍历你的json对象:
function traverse(jsonObj) {
if( typeof jsonObj == "object" ) {
$.each(jsonObj, function(k,v) {
// object or array
traverse(v);
});
}
else {
// actual value
}
}