我从this block得到了这段代码:
d3.csv("data.csv", function(d, i, columns) {
for (var i = 1, n = columns.length; i < n; ++i) d[columns[i]] = +d[columns[i]];
return d;
}, function(error, data) {script goes here});
我不明白代码如何区分字符串和数字,因为+
中的d[columns[i]] = +d[columns[i]]
应该意味着所有内容都被读作数字,不是吗?
在数据块中,数据如下所示:
State,Under 5 Years,5 to 13 Years,14 to 17 Years
CA,2704659,4499890,2159981
TX,2027307,3277946,1420518
NY,1208495,2141490,1058031
所以在某些时候代码不应该试图将CA
解释为数字?
答案 0 :(得分:2)
代码迭代从索引1(for var i = 1
)开始的列,当columns
数组为零时,它将跳过第一列。由于CSV的其余部分不再有非数值,因此从那里开始工作正常。