对于d3.js渲染图表,它将输入作为对象数组。以下是典型输入的示例:
var data = [
{x: 0, y: 0},
{x: 1, y: 1},
{x: 2, y: 4},
{x: 3, y: 9}
];
假设我的数据采用以下形式:
var data = [
[x, y],
[0, 0],
[1, 1],
[2, 4],
[3, 9]
];
然后我需要将数据从数组转换为对象数组然后将其提供给d3.js. 现在我知道怎么做了。这是一个需要解决的简单问题,我不是在问这个问题。
我的问题:d3.js中是否有内置函数将数组转换为对象数组?与内置函数d3.csv()
或d3.tsv()
类似的内容?如果轮子已经创建,为什么要重新发明轮子:)
感谢。
答案 0 :(得分:0)
查看csv / tsv解析器中的实现,它看起来像it reads the first row并生成converter function以映射其余行。
这似乎是dsv实现的私有(而不是重用任何实用程序函数),并且不会暴露可以在数组上使用的任何内容而不是文本。所以,我猜你问题的答案是否定的。
如果您正在寻找重用csv函数的超级/ hacky / fragile / bad方式,您可以随时执行此操作*:
const result = d3.csvParse(data.map(a => a.join(',')).join('\n'))
*不要这样做