使用内置d3.js方法将数组数组转换为对象数组

时间:2017-09-15 14:54:04

标签: javascript arrays object d3.js

对于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()类似的内容?如果轮子已经创建,为什么要重新发明轮子:)

感谢。

1 个答案:

答案 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'))

*不要这样做