d3 树连接到单个 child
d3 tree join to single child
是否有任何简单的方法可以删除 d3 树可视化中的重复项 children。
给定数据:
{
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"
}
]
}
]
};
我想让 parents,如本例中的 cert-iso
和 cert-hippa
指向 children 的单个实例,因为它们具有重复的 ID。我知道您可以投射自己的节点,但是有没有内置的方法可以做到这一点?
上的实施示例
不用了,我已经用一些 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});
});
是否有任何简单的方法可以删除 d3 树可视化中的重复项 children。
给定数据:
{
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"
}
]
}
]
};
我想让 parents,如本例中的 cert-iso
和 cert-hippa
指向 children 的单个实例,因为它们具有重复的 ID。我知道您可以投射自己的节点,但是有没有内置的方法可以做到这一点?
不用了,我已经用一些 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});
});