我想創建一個函數,遞歸循環javascript對象?
當給一個對象將輸出類似
<div>
reason : ok
status : 0
AiStatistics : null
CurrentSeasonArenaStatistics : null
<div>
Player
<div>
CampaignProgressCoop : CompletedLegendary
CampaignProgressSp : PartialHeroic
<div>
ReachEmblem
<div>
background_index : 2
change_colors : [0,7,2,0]
flags : 0
foreground_index : 49
</div>
</div>
</div>
</div>
gender : male
</div>
如何,我會去嗎?
這是我的嘗試:
function read_object(object){
var $obj = $('<div />');
for(var o in object) {
$obj.append(o+' : ');
if(typeof(object[o]) == 'object' and object[o] != null) {
$obj.append(read_object(object[o]));
}
else
$obj.append(object[o]);
}
return $obj;
}
這裏是我使用
{
"reason":"Okay",
"status":0,
"AiStatistics":null,
"CurrentSeasonArenaStatistics":null,
"Player":
{
"CampaignProgressCoop":"CompletedLegendary",
"CampaignProgressSp":"PartialHeroic",
"ReachEmblem":
{
"background_index":2,
"change_colors":[0,7,2,0],
"flags":0,
"foreground_index":49
}
}
}
我沒有采取小便......但是從您的方法中調用您的方法是一個好習慣嗎?它不應該是它自己的方法,也許返回一個字符串爲您的輸出? – Kieran 2010-09-29 06:56:53
好吧,修正,問題是我有$ obj和$ obj2而不是var $ obj和var $ obj2 – Hailwood 2010-09-29 07:00:35
這就是遞歸Kieran背後的整個想法。如果你還不知道遞歸的含義,請看這句話的開頭。 – 2010-09-29 07:01:07