【发布时间】:2018-10-06 05:59:26
【问题描述】:
我正在导入这样一个数据集:
Year,Spain,Rest
2017,"1,688","5,787"
2016,"1,787","5,505"
2015,"1,826","5,187"
2014,"1,822","4,861"
我需要将这些数字转换为数字以显示在 D3 图表中。我尝试使用这两个版本的代码来执行此操作,但我仍然得到 NaN 作为答案,所以我不知道如何解决这个问题:
d3.csv("stores.csv", function(d, i, columns) {
for (i = 1, t = 0; i < columns.length; ++i) {
t += d[columns[i]] = +d[columns[i]];
}
d.total = t;
return d;
}, function(error, data) {
if (error) throw error;
console.log(data);
var keys = data.columns.slice(1);
data.forEach(function(d) {
d.Year = parseDate(d.Year);
d["Spain"]= +(d["Spain"]);
d["Rest"] = +d["Rest"];
d["total"] = +d["total"];
// ...
我尝试以这种方式使用 parseInt() 而不是 +:
d["Spain"]= parseInt(d["Spain"]);
但还是不行。
希望有人可以帮助我。
【问题讨论】:
-
console.log(d["Spain"])的结果是什么?尝试扩展您的问题。不过有一件事:我认为您不想使用parseInt(string, radix),因为parseInt("4,861", 10)返回4。也许你需要developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
console.log(d["Spain"]) 的结果是 NaN。
-
好的,所以在
forEach-function 之前出错了。尝试正确缩进并使用更好的变量名。这对调试很有帮助。当您使用它时,我建议您更改您的问题和代码布局,以便其他人更具可读性。另外,在d.Year ...行之前做一个console.log(d) -
@epascarello 我认为这不是重复的。您可以取消标记它以便我发布解决方案吗?谢谢。
标签: javascript d3.js