无法引用从头文件中带空格的csv文件导入的d3.js数据

d3n*_*oob 2 javascript csv d3.js

我从一个csv文件导入数据,该文件包含在某些字段中间带空格的标题.

例如,以下列有一个名为"Date Purchased"的列;

Value,Date Purchased,Score
12345,2011-03-23,99
22345,2011-03-24,100
32345,2011-03-25,99
42345,2011-03-26,100
Run Code Online (Sandbox Code Playgroud)

我知道RFC 4180指出这是正常的;

在标题和每个记录中,可能有一个或多个字段,以逗号分隔.每行应在整个文件中包含相同数量的字段.空间被认为是一个领域的一部分,不应该被忽视.

但是当我然后使用d3.csv函数导入数据时,我需要以允许空间的方式引用"Data Purchased"列.下面的脚本将是最基本的解决方案,但JavaScript不允许在变量名称中使用空格(我知道它看起来很明显,但我试图在逻辑上拼写这个)

d3.csv("sample-data.csv", function(error, data) {
    data.forEach(function(d) {
        d.date = parseDate(d.Date Purchased);
    });
Run Code Online (Sandbox Code Playgroud)

console.log(data) 显示正在导入文件时没有问题,"Data Purchased"列中的数据称为"Data Purchased".

我发现,建议中包含一个小数点,下划线或连字符,而不是一个空间(参考d.Date.Purchased,d.Date_Purchased,d.Date-Purchased),但似乎没有任何工作.

我可以编写一个简单的PHP解析器来删除空格,但感觉有一个简单的解决方案,它将在JavaScript/d3中工作,我只是错过它.

Ste*_*mas 5

这是如何做

d.date = parseDate(d['Date Purchased']);
Run Code Online (Sandbox Code Playgroud)