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
        }
    }
}