D3.js树的布局 - 想得到后代的数量

时间:2017-02-23 08:48:34

标签: javascript d3.js d3.js-v4

我想知道如何获得节点后代的计数。

我可以使用此代码获得孩子的数量。

console.log(d.children.length);

但是如何计算该节点的后代?

我是否需要使用复发?

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

这是递归。

function getCount(parent) {
  var count = 0;

  if (Array.isArray(parent.children)) {
    count += parent.children.length;
    parent.children.forEach(function(child) {
      if (Array.isArray(child.children)) {
        count += getCount(child);
      }
    });
  }

  return count;
}

var d = {
  children: [
    1,
    {
      children: [
        1,
        2
      ]
    },
    2,
    3
  ]
};

console.log(getCount(d));