0
私はこれをできるだけ短くしておきます。d3ツリーのすべてのノードを取得
私はスニペットで木を表すJsonを持っています。 d3の助けを借りて、ルートのすべての子ノードを配列として取得しようとします。そのためには、関数 "nodes"を使用します。
問題は、私の子供のキーが「子供」の代わりに「_子ども」と呼ばれることです。私はノードの機能に "子供"の代わりに "子供"をチェックするように指示する良い解決策を見つけようとしています。すべての子供のキーの ""を削除すると動作します。
var json = {"_name":"root","_children":[{"_name":"Application","_children":[{"_name":"Application Heap","_children":[],"_color":"#0000ff", "MEMORY":20},{"_name":"Other","_children":[],"_color":"#000055","MEMORY":30},{"_name":"Statement Heap","_children":[],"_color":"","MEMORY":40}]}]};
console.log(json);
// tell d3 that my children key is "_children"
var treemap = d3.layout.treemap()
.children(function(d) { return d._children; })
.value(function(d) { return d.MEMORY; });
// With this line I try to get all child nodes of the root element
var nodes = treemap.nodes(json)
.filter(function(d) {return !d._children; });
console.log(json); // d3 sets the value and everything else correct
console.log(nodes); // for some reason I get an empty array
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>