2016-07-21 8 views
1

私は次のように基づいD3ツリーを持ってカウント...D3ツリーは、すべての子どもたち

http://bl.ocks.org/mbostock/1093025

は、どのように私はすべての子供の数を取得するのでしょうか?私はそれは、クラスタ内のそれらのように(ですから、例えば、それは子供たちがツリー内のオレンジ色の行になり、すべての子供をカウントする必要があり、ツリー内のすべての行...

$(".tree_badge").text(tree.links(nodes).length); 

をカウントしかし、これを試してみましたグラフなど)。

ありがとうございました!

答えて

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

注:あなただけの場合と同様に、他の内部でカウント++追加し、木の終わりに、あなたのノードだけではなく、もの下のすべてのノードをカウントする場合。

+0

「再帰」とは何ですか? 'count_leaves'を意味しましたか? –

+1

はい、申し訳ありません。私はそれを時代遅れの時を書きました。私はこのポストのためにそれを変更しました –

関連する問題