gpt4 book ai didi

javascript - D3.js - 有条件地将 nest.key() 函数应用于数组元素

转载 作者:行者123 更新时间:2023-11-30 06:32:05 26 4
gpt4 key购买 nike

我有一个代表分层树数据的 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"}]}
}

如何实现?

最佳答案

您想拥有多个 key 吗?在您想要的格式中,您似乎只有一把 key 。

如果你不想要多个键,你应该删除定义键的函数,

如果您确实需要多个 key ,我建议您在使用函数生成 key 之前使用 if 子句。并检查空字符串为

d.level1 === "" 

应该有帮助。

关于javascript - D3.js - 有条件地将 nest.key() 函数应用于数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16907609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com