这个必须要容易,但我不能为我的生活弄清楚它为什么不起作用。
我有一些D3代码来绘制一些圆圈。我在一个变量中嵌套了六个数字的数组(称为'数据集')。我试图访问这些值以使用圆圈的y值。
var width = 600;
var height = 400;
var dataset = [[16.58, 17.90, 17.11, 17.37, 13.68, 13.95], [20.26,1 3.40, 18.63, 19.28, 20,92, 18.95], [16.32, 23.16, 21.05, 28.16, 23.68, 23.42], [31.32, 30.80, 29.37, 28.16, 32.37, 27.63], [41.32, 39.74, 29.37, 35.00, 35.53, 30.00], [25.83, 38.27, 43.33, 45.83, 44.17, 41.25]];
var svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height);
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle")
.attr("cx", function(d, i) {
return i * 100 + 50;
})
.attr("cy", function(d, i) {
for (var j = 0; j<6; j++){
//console.log(i,j);
return d[i][j]; //THIS IS WHERE I'M FAILING
}
})
.attr("r", 15);
所以x值只是100 px间隔(我基本上希望每个集合都在自己的列中)。然后,每个圆的y值应该是第i个数组中的第j个项。那么为什么没有[i] [j]回归呢?
我已经注释掉了console.log语句。如果我没有注意到所有内容都按照我的预期记录,但双括号表示法显然不能访问这些数字。如果我在浏览器中直接进入控制台并输入数据集[0] [1],它会返回&#39; 17.90&#39;,那么为什么它在这个实现中不起作用?
太困惑了。
由于