d3 csv读取数组中的对象

hGe*_*Gen 5 javascript csv d3.js

我目前正在尝试将d3框架用于大学可视化方法。出于测试目的,我想读取一个csv文件并将行解析为数组内的对象。

我的csv看起来像:

 ID, Referred To, TimeStamp, Votes, Comment
Run Code Online (Sandbox Code Playgroud)

所以我想用以下几行来阅读它:

d3.csv("test_comments.csv", function(data) {
  commentlist = data.map(function(d) {
    return[+d["ID"],
           +d["Referred To"],
           +d["TimeStamp"],
           +d["Votes"],
           +d["Comment"]
          ]
  });
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我以后想读出值,我会变得“未定义”,我也尝试了此线程中描述的mbostock的方式: csv到d3.js中的数组

但是使用全局变量也不起作用。

var commentlist;
d3.csv("test_comments.csv", function(data) {
  commentlist = data.map(function(d) {
    return[+d["ID"],
           +d["Referred To"],
           +d["TimeStamp"],
           +d["Votes"],
           +d["Comment"]
          ]
  });
});
console.log(commentlist);
Run Code Online (Sandbox Code Playgroud)

我理解不对吗?也许您对我有解决方案。

sai*_*vsk 1

var commentlist=[];
d3.csv("test_comments.csv", function(data) {
  commentlist=data;
});
console.log(commentlist);
Run Code Online (Sandbox Code Playgroud)

我所知道的是,在回调数据对象中将包含csv文件所有数据行的JSON对象数组,每行数据都以JSON格式推送到数据数组中。如下

[{"ID": valueFromtheRow, "Referred To": value, "TimeStamp": value, "Votes":value, "Comment":value}]
Run Code Online (Sandbox Code Playgroud)

通过传递 JSON 数组来调用回调函数。所以数据对象看起来像

data=[{"ID": valueFromtheRow, "Referred To": value, "TimeStamp": value, "Votes":value, "Comment":value}];
Run Code Online (Sandbox Code Playgroud)

希望你明白...如果不明白就问我。