递归循环javascript对象?

发布于 2024-09-25 01:16:37 字数 1266 浏览 1 评论 0原文

我正在尝试创建一个函数,

当给定一个对象时,该函数将输出类似“

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

I am trying to create a function which,

When given an object will output something like

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

How would i go about this?

This is my attempt:

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

Here is the object i am using

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

转角预定愛 2024-10-02 01:16:37

将方法与主调用分开。


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

Separate the method out from the main call.


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
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文