【问题标题】:Converting an Array of Arrays to an Array of Objects Using Built-in d3.js Methods使用内置 d3.js 方法将数组数组转换为对象数组
【发布时间】:2017-09-15 14:54:04
【问题描述】:

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

谢谢。

【问题讨论】:

标签: javascript arrays object d3.js


【解决方案1】:

查看 csv/tsv 解析器中的实现,它看起来像 it reads the first row 并生成一个 converter function 来映射其余行。

这对于 dsv 实现来说似乎是非常私有的(而不是重用任何实用函数),并且不会暴露任何可以在数组而不是文本上使用的东西。所以,我猜你的问题的答案是否定的。

如果您正在寻找一种超级 hacky/脆弱/糟糕的重用 csv 函数的方法,您总是可以这样做*:

const result = d3.csvParse(data.map(a => a.join(',')).join('\n'))

*不要这样做

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多