所以我有一个非常简单的5列9行的CSV文件,我正在浏览器中使用一些新手D3代码,使用Python附带的SimpleHTTPServer模块提供我的文件,并在Chrome 48.0中工作。
以下内容有效:
d3.csv("cities.csv", function(data) {
console.log(data)
});
这会导致控制台返回一个对象数组,其中每个对象代表我的CSV文件中的一行。这很好。返回的data
如下所示:
data = [
{country: "USA", label: "San Francisco", population: "750000"},
{country: "USA", label: "Fresno", population: "500000"},
...
];
以下不起作用:
d3.csv("cities.csv", function(data) {
d3.min(data, function(el) {
return +el.population
});
});
在这里,我希望d3.min()
遍历data
数组中的每个对象,每个对象都由el
参数表示,查看其#34;人口&#34 ; property,并返回数组中所有对象的最小值 - 一个整数。
相反,Chrome控制台会返回一些我不明白的奇怪废话:
对象{} 中止:() 得到:() 标题:(n,t) mimeType:(n) 上: () 发布:() 回应:(n) responseType:(n) 行:(n) 发送:(e,r,u) proto :对象
基本上看起来data
参数未成功传递给d3.min()
方法。这很奇怪,因为很明显,在较简单的第一个示例中,我的CSV文件确实正确加载,data
参数正确地传递到行console.log(data)
。
我真的难倒D3作为D3新手。我是否误解了一些关于如何加载数据并使用它的非常基础的东西?
谢谢!