2015-03-03 64 views
0

是否有任何簡單的方法來刪除d3樹可視化中的重複的孩子。d3樹加入到單個孩子

鑑於數據:

{ 
     name: "certificates", 
     id: "cert-root", 
     children: [ 
      { 
       name: "ISO", 
       id: "cert-iso", 
       children: [ 
        { 
         id: "co-01", 
         name: "CO-01" 
        }, 
        { 
         id: "co-02", 
         name: "CO-02" 
        } 
       ] 
      }, 
      { 
       name: "HIPPA", 
       id: "cert-hippa", 
       children: [ 
        { 
         id: "co-01", 
         name: "CO-01" 
        }, 
        { 
         id: "co-o2", 
         name: "CO-02" 
        } 
       ] 
      } 
     ] 
    }; 

我想作父母,在這個例子中cert-isocert-hippa點,因爲他們有重複ID孩子的單個實例。我知道你可以投射你自己的節點,但是有沒有建立它的方式?實現對jsbin

回答

0

無需

例子中,我與一些lodash魔術:)

var nodes = tree.nodes(data); 

nodes = _.uniq(nodes, 'id'); 

var links = tree.links(nodes); 

_.each(links, function (o, i) { 
    links[i].target = _.find(nodes, {id: o.target.id}); 
}); 
解決它