我正在使用d3.js进行可折叠布局。我对以下代码的引用我想通过使用depth属性来计算被点击节点的深度(级别),但我将其视为未定义。还有另一种计算深度的方法吗?
答案 0 :(得分:1)
计算flatten
方法中每个节点的深度,如下所示。
function flatten(root) {
var nodes = [], i = 0;
function recurse(node, depth) {
node.depth = depth;
if (node.children)
node.children.forEach(function(n){
recurse(n,node.depth+1);
});
if (!node.id)
node.id = ++i;
nodes.push(node);
}
recurse(root,0);
return nodes;
}
这是工作JSFiddle