这可能更像是一个建议/最佳实践问题,但我想知道循环通过一个非常大的JSON数组的最流畅/最优雅/可读的方法是什么。
这是一个数组的例子。请注意,有时数组大小不同(因为它是数据库查询)。
{
"1":
{
"attributes":
{"Label" : "Some Label"},
"leader":
{"123" :
{"Name" : "Joe",
"Age" : "50"}
}
}
},
"2"
{"attributes":
{"Label" : "Some label"},
"leader":
{"456" :
{"Name" : "Bob",
"Age" : "24",
"followers" :
{"243" :
{"Name" : Jimmy"}
...etc
对于此示例的英语,您可能会获得一个组织列表,其中包含可能拥有可能拥有合同的员工的关注者的领导者等。
我实际上已经没有问题通过使用这样的结构来迭代这种结构(因为我确实知道最深层次是什么):
$.each(data, function(i, Org){
var org = i;
$.each(org, function (i, leader){
$.each(leader, function (i, follower){
.....etc
}
}
}
是唯一能够通过嵌套的$ .each循环遍历多维数组的方法,还是有更好的方法来实现这一点,即一个递归数组(以某种方式知道如何移动索引并深入研究一直到没有什么东西离开,然后向后移动等。)
答案 0 :(得分:2)
这是我后来写的一个递归函数,它解析数组 -
function arrayParse(currentObject, key) {
for (var property in currentObject) {
if (typeof currentObject[property] === "object") {
arrayParse(currentObject[property], property);
} else {
$('#result').append(
(property=='value' && key ? key : property)
+ ' -- ' + currentObject[property] + '<br />'
);
}
}
}
修复样本数组的问题后,我得到以下输出 -
Label -- Some Label
Name -- Joe
Age -- 50
Label -- Some label
Name -- Bob
Age -- 24
Name -- Jimmy
Age -- 40
这是example