我有一个数据可视化,它目前根据对象是否有 child 来为对象分类,如下所示:
d3.json("skills.json", function(error, root) {
var node = svg.datum(root).selectAll(".node")
.data(pack.nodes)
.enter().append("g")
.attr("class", function(d) { return d.children ? "node" : "leaf node"; })
我想做的是根据他们的深度,或者至少,根据他们是否有 child 的 child ,给他们一个不同的类(class),基本上是这样的(虽然我不确定语法):
.attr("class", function(d) { return d.children.children ? "node" ? d.children ? "branch" : "leaf node"; });
有谁知道这样做的正确方法吗?
最佳答案
你可以使用 array.some查看当前节点的任何子节点是否有子节点。
node.attr("class", function(d) {
return d.children ? (d.children.some(function(c) { return c.children; })
? "grandparent"
: "parent")
: "child";
});
关于javascript - d3.js - 确定嵌套深度(或 child 的 child ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14821633/