Jquery 递归循环javascript对象?
我试图创建一个函数 当给定一个对象时,它将输出如下内容Jquery 递归循环javascript对象?,jquery,json,recursion,object,Jquery,Json,Recursion,Object,我试图创建一个函数 当给定一个对象时,它将输出如下内容 <div> reason : ok status : 0 AiStatistics : null CurrentSeasonArenaStatistics : null <div> Player <div> CampaignProgressCoop : CompletedLegendary CampaignProgressSp : PartialHeroic <d
<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)
{
//do some cool stuff to return a string
return str;
}
function loopy(object)
{
for(var o in object)
{
if(typeof(object[o]) == 'object')
{
read_object(object)
}
else
{
//output in some other way
}
}
}
我不是在撒尿。。但是,从方法内部调用方法是一种好的做法吗?为输出返回字符串不是它自己的方法吗?好的,修复了,问题是我使用$obj和$obj2而不是var$obj和var$obj2,这就是递归背后的全部思想。如果你还不知道递归的含义,请看这句话的开头。@Kieran递归就是这样工作的。你创建的东西只是一遍又一遍地调用它自己,直到它不需要。(查找递归…)酷的递归非常好。不管你做什么,你最终都会得到一个递归模式。在您的示例中,您最终将从read_对象调用loopy。我读过递归。大多数人说,你并不真的需要使用它,可能会导致堆栈问题,但它确实节省了代码
{
"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
}
}
}
function read_object(object)
{
//do some cool stuff to return a string
return str;
}
function loopy(object)
{
for(var o in object)
{
if(typeof(object[o]) == 'object')
{
read_object(object)
}
else
{
//output in some other way
}
}
}