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-isocert-hippa 指向 children 的单个实例,因为它们具有重复的 ID。我知道您可以投射自己的节点,但是有没有内置的方法可以做到这一点?

jsbin

上的实施示例

不用了,我已经用一些 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});
});