我知道这个问题以前曾被问过,但由于某种原因,他们的解决方案对我不起作用。
我正在尝试使用 CSV 文件中的数据填充两个数组,其中:
name,value
alpha,34
beta,12
delta,49
gamma,89
我现在正在尝试的是
var field1=[];
var field2=[];
d3.csv("data.csv",function(csv){
csv.map(function(d){
field1.push(d.name);
field2.push(+d.value);
})
});
console.log("field1",field1);
console.log("field2",field2);
当我在浏览器上查看控制台时,我看到:
字段 1 数组 [ ]
field2 数组 [ ]
where:
field1:
Array[0]
0:"alpha"
1:"beta"
2:"delta"
3:"gamma"
field2:
Array[0]
0:34
1:12
2:49
3:89
但是,当我尝试访问 field1[0] 时,我得到的值是未定义的
field1 undefined
我猜发生的情况是 field1 数组有一个“name”列数组,但我也无法通过 field[0][0] 访问第一个元素。我得到的是:
TypeError: field1[0] is undefined
我对 JavaScript 很陌生,我似乎不明白为什么数组没有正确填充为一维数组,或者我是否做错了什么。我知道我可以在访问每行 csv 时迭代每一行,但我想将 csv 值存储在数组中以便在脚本中全局使用。
我浏览过的链接是:
- https://github.com/mbostock/d3/wiki/CSV https://github.com/mbostock/d3/wiki/CSV
- 将 d3.csv 方法转换为 d3.csv.parse 方法 https://stackoverflow.com/questions/26111455/converting-a-d3-csv-method-to-d3-csv-parse-method
- d3.js 中的 csv 到数组 https://stackoverflow.com/questions/9491885/csv-to-array-in-d3-js
- http://learnjsdata.com/read_data.html http://learnjsdata.com/read_data.html
- http://bl.ocks.org/enjalot/1525346 http://bl.ocks.org/enjalot/1525346
但我似乎遗漏或忽略了一些东西..请帮忙!