這可能更多的是一個建議/最佳實踐問題,但我想知道什麼最平滑/最優雅/可讀的方式來循環一個非常大的JSON數組。通過使用jQuery對維度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循環的多昏暗的數組,或者有更好的乾淨的方式來實現這一點,即遞歸數組(這將以某種方式知道要移回索引並挖掘該數組,直到沒有任何東西離開,移回來等)
使用遞歸函數通過遞歸數據結構進行迭代。 – Barmar 2014-10-03 20:10:36
答案確實取決於您的預期用途。您是否需要遍歷葉節點,還是需要知道節點路徑中的值?你是在將東西移動到新的數據結構中,還是在閱讀它們時在葉節點上運行? – nrabinowitz 2014-10-03 20:11:51
您可能會對Protovis庫中提供的Flatten操作符感興趣:https://github.com/mbostock/protovis/blob/master/src/data/Flatten.js – nrabinowitz 2014-10-03 20:13:40