我想创建一个函数,递归循环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