在D3变量中访问嵌套数组

时间:2014-08-27 17:30:57

标签: javascript arrays d3.js

这个必须要容易,但我不能为我的生活弄清楚它为什么不起作用。

我有一些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;,那么为什么它在这个实现中不起作用?

太困惑了。

由于

0 个答案:

没有答案