2014-02-19 54 views
1

我是新來d3.js任何的幫助深表感謝 CSV文件錯誤而閱讀使用d3.js CSV文件

Year,Make,Model,Length 
1997,Ford,E350,2.34 
2000,Mercury,Cougar,2.38 

代碼

d3.csv("../test/car.csv", function(d) { 
    return { 
    year: new Date(+d.Year, 0, 1), // convert "Year" column to Date 
    make: d.Make, 
    model: d.Model, 
    length: +d.Length // convert "Length" column to number 
    }; 
}, function(error, rows) { 
    console.log(rows); 
}); 

預期的結果是

[ 
    {"Year": "1997", "Make": "Ford", "Model": "E350", "Length": "2.34"}, 
    {"Year": "2000", "Make": "Mercury", "Model": "Cougar", "Length": "2.38"} 
] 

但我收到以下錯誤未捕獲的SyntaxError:意外的令牌非法

也表明,長度爲86,但我只有2個在CSV文件條目不知道發生了什麼

+1

你有''和''在腳本中<!DOCTYPE HTML!> ? https://github.com/mbostock/d3/issues/1195#issuecomment-16262373哪個「長度」是86? –

+0

實際上你不需要創建一個javascript數據然後解析它。你實際上可以像正常的數字一樣解析,你會得到預期的結果。 –

回答

0

我想這musically_ut評論將解決您的首要問題。但是,您也不會迭代您的數據。


d中的數據是一個數組,每個條目都是一行。

因此,如果你這樣做:

d3.csv("../test/car.csv", function(d) { 
    return d; 
}, function(error, rows) { 
    console.log(rows); 
}); 

我猜你將有希望的結果。

如果你想通過你的數據,你可以做到以下幾點:

d3.csv("../test/car.csv", function(d) { 
    d.forEach(function(data,index){ 
    // do something with row of index `index` with its data `data` 
    }) 
}, function(error, rows) { 
    console.log(rows); 
});