我有一个基于以下内容的d3树...
http://bl.ocks.org/mbostock/1093025
我如何计算所有孩子的数量?我试过这个,但它会计算树中的所有行...
$(".tree_badge").text(tree.links(nodes).length);
因此,在示例中,它应该计算所有子项,其中子项将是树中的橙色行(如群集,图形等中的那些)。
感谢您的任何见解!
答案 0 :(得分:3)
我实际上遇到了类似的问题,我必须从特定节点下面的树中获取所有描述。在我的案例和你的答案中的答案是递归地下降树并在下来的路上做一些事情。应该看起来像这样。
var count;
function count_leaves(node){
if(node.children){
//go through all its children
for(var i = 0; i<node.children.length; i++){
//if the current child in the for loop has children of its own
//call recurse again on it to decend the whole tree
if (node.children[i].children){
count_leaves(node.children[i]);
}
//if not then it is a leaf so we count it
else{
count++;
}
}
}
注意:如果要计算节点下面的所有节点而不仅仅是树末端的节点,只需在if和else中添加count ++。
答案 1 :(得分:0)