如何解析 javacript 字符串数组中的 csv 数据以用于 d3 图表

我想要使用 javascript 字符串数组中的数据来产生 d3 图表,以显示一个时间戳(t),接收(rx)和传输(tx)计数器的时间序列。每个数组成员都是对应一行“时间,rx,tx”的字符串(是的,用逗号分隔符)。我不想使用基于 d3.request 的方法。我已经使用服务器端 lua 代码从服务器读取了文件并使用 jslines.push(string) 将数据放入页面。

109 // Show results so far
110 for (i=0; i < jslines.length; i++) {
111     console.log(i + ": " + jslines[i]);
112 }

上面的部分让我相信数据如我所描述的那样。现在我只是试图从“行”中提取出每个数据值,然后重复。我并不在乎它们此时仍然是字符串。以后再转换成数字。

我的参考资料是:https://github.com/d3/d3-dsv/blob/master/README.md#csvParseRows,但我显然误解了所需的工作。

114 var dataArray = d3.csvParseRows(jslines, function(d, i) {
115   return {
116     time: d[0],
117     rx:   d[1],
118     tx:   d[2]
119   };
120 });

非常感谢(亲切)建议和/或使用 d3 解析和准备不是从远程(或本地)文件中获取的数据的工作实例。我能找到的大多数示例都是要求 d3 将文件内容传输到客户站,我相信。

谢谢... Alan

点赞
用户4032278
用户4032278

如果您已经有了字符串,可以像这样分割它:

var a = "1,2,3"
var b = a.split(",")
console.log(b[1])

对于您的示例,您可以像这样提取数据:

var data = jslines.map(function(l) {
  data = l.split(",");
  return({time: data[0], rx: data[1], tx: data[2]});
})

然后根据生成的对象数组构建您的 d3 图表。

2017-11-20 18:31:11