【问题标题】:Count level of object depth [duplicate]对象深度的计数级别[重复]
【发布时间】:2018-04-24 14:38:18
【问题描述】:

我有一个 javascript 对象,我想计算嵌套深度的数量。

示例对象

答案应等于 4(计数级别深度)

data: {
first: [
  {
    value: '',
    children: [
      {
       value: '',
       children: [
          {
            value: '',
            children: [
              {
                value: '',
                children: [],
              },
              {
                 value: '',
                children: [],
              },
            ],
          },
        ],
      },
    ],
  },
],

【问题讨论】:

  • ...到目前为止,您是如何实现这一目标的?
  • 使用recursion
  • @C.Braun:它有点重叠,但我不认为它是重复的。这询问了一个通用对象。这会询问特定的结构(children 等)
  • 欢迎使用 StackOverflow。请拨打tour 并访问help center。请注意,这不是代码编写服务。我们希望提供帮助,但希望您也付出合理的努力。

标签: javascript object


【解决方案1】:

假设它是一棵树(没有嵌套对象链接到祖先),您可以简单地导航结构

function treeHeight(node) {
    return node.children.reduce(function (maxHeight, node) {
        return Math.max(maxHeight, treeHeight(node) + 1);
    }, 1);
}

【讨论】:

  • 大概maxDepth应该是maxHeight
  • 感谢@ScottSauyet,这是一个错字;-)
猜你喜欢
  • 2012-10-20
  • 2012-07-03
  • 2011-08-27
  • 2018-05-09
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
相关资源
最近更新 更多