chr*_*ina 5 javascript max d3.js
我d3.js用来渲染一些数据,数据集是一个这样的csv文件bar-data.csv:
date,value,duration
www.sina.com,53,100
www.baidu.com,165,2000
www.qq.com,269,690
www.youku.com,421,224
www.facebook.com,405,345
www.apple.com,376,777
www.cnn.com,359,298
www.cctv.com,433,333
www.google.com,455,500
www.boston.com,670,274
Run Code Online (Sandbox Code Playgroud)
但是,当我使用以下代码来获取maximum持续时间时,返回值777不是2000(应该是数据集中的最大值).
d3.csv("bar-data.csv", function(error, data) {
data.forEach(function(d) {
d.date = d.date;
d.value = d.value;
});
var maximum = d3.min(data, function(d) { return d.duration; });
alert ("max is " + maximum);
Run Code Online (Sandbox Code Playgroud)
如果您更改2000为999,您将获得999最大值.它似乎只用相同数量的数字给出答案.
这是什么问题?
Ale*_*x_B 19
更改代码以将持续时间值解析为Int可以解决问题,同时使用d3.forEach函数处理它们.见下文:
d3.csv("test.csv", function(error, data) {
console.log(data);
data.forEach(function(d) {
d.date = d.date;
d.value = d.value;
d.duration = parseInt(d.duration);
});
var maximum = d3.max(data, function(d) { return d.duration; });
console.log("max is " + maximum);
});
Run Code Online (Sandbox Code Playgroud)
谢谢你的问题,我打赌很多人以前都有这个!
再见,亚历克斯