我需要用d3.js读取csv文件。我的数据文件是
x,y
480,200
580,400
680,100
780,300
180,300
280,100
380,400
我的代码是
var ball_1 = []
d3.csv("data.csv", function(data) {
ball_1 = data.map(function(d) { return [ +d["x"], +d["y"] ]; });
});
console.log(ball_1)
并且控制台日志显示
数组[]
但如果我只是在代码中明确地写数据数组,
var ball_1 = [
[480, 200],
[580, 400],
[680, 100],
[780, 300],
[180, 300],
[280, 100],
[380, 400]
];
console.log(ball_1)
然后控制台日志说
Array [Array [2],Array [2],Array [2],Array [2],Array [2],Array [2],Array [2]]
因此,第一个读取csv文件的代码不起作用。 怎么了?
答案 0 :(得分:2)
d3
的方法json()
,csv()
和tsv()
是异步的。这意味着你应该写
var ball = [];
d3.csv('yourfile.csv', function(err, data){
ball = data.map(function(d) { return [ +d["x"], +d["y"] ]; });
console.log(ball); //here the code is executed when the csv is retrieved
});
console.log(ball); //here the code is executed after d3.csv() is launched
取决于服务器的速度,您应该看到
Array[]
Array[7]