我正在努力为D3中的太阳轮图制作JSON。但是我的数据格式不正确。我写了一个小的javascript片段,使其成为正确的JSON格式。但是,我遇到了一些麻烦,因为有些名字指的是同一个父母。我想知道如何解决命名问题,因为我想保留每个名字?我提供了一个评论小提琴,因为这可能会令人困惑。
http://jsfiddle.net/dbffL7et/1/
tldr:有没有办法检查多个父母是否存在?
// create a name: node map
var dataMap = data.reduce(function (map, node) {
map[node.name] = node;
return map;
}, {});
// create the tree array
var tree = [];
data.forEach(function (node) {
// add to parent
var parent = dataMap[node.parent];
if (parent) {
// create child array if it doesn't exist
(parent.children || (parent.children = [])) //something to change here??
// add node to child array
.push(node);
} else {
// parent is null or missing
tree.push(node);
}
});