有如下一段json数据
{
"name": "18912386146",
"size": 45,
"children": [
{
"name": "13811179796",
"size": 10
},
{
"name": "18511331067",
"size": 10
},
{
"name": "18631867507",
"size": 10
},
{
"name": "18616261983",
"size": 45,
"children": [
{
"name": "13811179796",
"size": 10
},
{
"name": "18995390312",
"size": 10
}
]
},
{
"name": "13466692515",
"size": 10
},
{
"name": "13650731515",
"size": 45,
"children": [
{
"name": "13811179796",
"size": 10
},
{
"name": "13037986580",
"size": 10
},
{
"name": "18995390312",
"size": 10
}
]
},
{
"name": "15809619551",
"size": 10
},
{
"name": "18601191669",
"size": 10
},
{
"name": "15909638715",
"size": 10
},
{
"name": "15909619055",
"size": 10
},
{
"name": "18902266418",
"size": 63,
"children": [
{
"name": "13560047280",
"size": 63
},
{
"name": "13632270695",
"size": 10
},
{
"name": "13650731515",
"size": 45
},
{
"name": "13268069280",
"size": 167
}
]
},
{
"name": "13037986580",
"size": 10
},
{
"name": "18995390312",
"size": 10
}
]
}
上面这段json数据对应成图,
现在点击紫色的大圆点,即其中一个叶子节点,会反转成根节点,重新生成图形,这样一个效果;
只需要对json数据进行反转即可;
需要通过遍历算法转成下面这样
{
"name": "13268069280",
"size": 167,
"children": [
{
"name": "18902266418",
"size": 63,
"children": [
{
"name": "13560047280",
"size": 63
},
{
"name": "13632270695",
"size": 10
},
{
"name": "13650731515",
"size": 45
},
{
"name": "18912386146",
"size": 45,
"children": [
{
"name": "13811179796",
"size": 10
},
{
"name": "18511331067",
"size": 10
},
{
"name": "18631867507",
"size": 10
},
{
"name": "18616261983",
"size": 45,
"children": [
{
"name": "13811179796",
"size": 10
},
{
"name": "18995390312",
"size": 10
}
]
},
{
"name": "13466692515",
"size": 10
},
{
"name": "13650731515",
"size": 45,
"children": [
{
"name": "13811179796",
"size": 10
},
{
"name": "13037986580",
"size": 10
},
{
"name": "18995390312",
"size": 10
}
]
},
{
"name": "15809619551",
"size": 10
},
{
"name": "18601191669",
"size": 10
},
{
"name": "15909638715",
"size": 10
},
{
"name": "15909619055",
"size": 10
},
{
"name": "13037986580",
"size": 10
},
{
"name": "18995390312",
"size": 10
}
]
}
]
}
]
}
不知道各位有没有比较好的算法实现,我已实现一个版本
上下2段json对应成d3关系图分别是
测试
搞定收工!