我有一个表示分层树数据的CSV:
industry,level1,level2,level3,name
Ecommerce,Web,,,Rakuten
Ecommerce,Crowdsourcing,,,Lancers
Social,Photo sharing,Deco apps,,Snapeee
Social,Photo sharing,Deco apps,Collage apps,DecoAlbum
Portals,,,,Yahoo Japan
行level1...level3
表示子节点,行name
表示底部节点。我正在尝试应用d3.nest()
函数来获取分层JSON对象。特别是,我想摆脱级别行为空的节点。到目前为止,我有以下代码:
d3.csv("data.csv", function(rows) {
sunburst_tree = d3.nest()
.key(function(d) { return d.industry; })
.key(function(d) { return d.level1; })
.key(function(d) { if (!(typeof d.level2 === 'undefined')) return d.level2; })
.entries(rows);
console.log(sunburst_tree);
});
使用空键生成JSON对象,如下所示:
{"key":"Portals",
"values":[{"key":"",
"values":[{"key":"",
"values":[{"industry":"Portals","level1":"","level2":"","level3":"","name":"Yahoo Japan"}]
}]
}]
}
相反,我想删除所有空的子节点:
{"key":"Portals",
"values":[{"industry":"Portals",
"level1":"","level2":"","level3":"","name":"Yahoo Japan"}]}
}
如何实现这一目标?
答案 0 :(得分:0)
你想拥有多把钥匙吗?看起来像你想要的格式,你只有一把钥匙。
如果您不想要多个键,则应删除定义键的功能
OR
如果您确实需要多个键,我建议您在使用函数生成密钥之前使用if子句。并检查空字符串为
d.level1 === ""
应该有帮助。