2013-07-01 80 views
0
{ 
"name": "Max", 
"value": 107, 
"children": [ 
    { 
    "name": "Don", 
    "value": 60, 
    "children" [ 
    {"name": "CC", "value": 25}, 
    {"name": "Jim", "value": 35} 
    ] 
    }, 
    { 
    "name": "David", 
    "value": 47, 
    "children": [ 
     {"name": "Jeff", "value": 32}, 
     {"name": "Buffy", "value": 15} 
    ] 
    } 
    ] 
} 

你如何計算組的孩子?d3 json計數最內圈

data.children.length; 

似乎並沒有工作。 (數據設置爲等於js)

+0

究竟是什麼你想在這裏實現什麼目標?除非您始終知道最深的深度,否則很可能需要遞歸函數。 –

+0

[Json d3訪問每個對象]的可能重複(http://stackoverflow.com/questions/17409958/json-d3-access-each-object) –

+0

我想找出誰嵌套循環誰的子女人數他們自己沒有孩子。例如:CC,吉姆,傑夫,巴菲...... – user2539797

回答

1

你想要的是一棵樹上的樹葉數量。您可以遞歸遍歷樹做到這一點:

getNumberOfLeaves = function (obj) { 
    if (obj.children) { 
     var res = 0; 
     obj.children.forEach(function(d){res+=getNumberOfLeaves(d)}) 
     return res 
    }else { 
     return 1 
    } 
} 

的jsfiddle:http://jsfiddle.net/chrisJamesC/PVhUn/

+0

它的工作。謝謝! – user2539797