Javascript 访问D3变量中的嵌套数组

Javascript 访问D3变量中的嵌套数组,javascript,arrays,d3.js,Javascript,Arrays,D3.js,这个一定很简单,但我一辈子都不明白为什么它不起作用 我有一些D3代码来画一些圆圈。我在一个变量(称为“dataset”)中嵌套了六个数字的数组。我正在尝试访问这些值,以便对圆使用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

这个一定很简单,但我一辈子都不明白为什么它不起作用

我有一些D3代码来画一些圆圈。我在一个变量(称为“dataset”)中嵌套了六个数字的数组。我正在尝试访问这些值,以便对圆使用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);
var宽度=600;
var高度=400;
var数据集=[[16.58,17.90,17.11,17.37,13.68,13.95],[20.26,13.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.17,27.63],[41.32,39.74,29.37,35.00,35.53,30.00],[25.83,38.27,43.33,45.83,44.17];
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度);
svg.selectAll(“圆圈”)
.数据(数据集)
.输入()
.附加(“圆圈”)
.attr(“cx”,函数(d,i){
返回i*100+50;
})
.attr(“cy”,函数(d,i){

对于(var j=0;j是一个很好的读物。请查看。谢谢jshanley。我实际上花了几个小时试图解读那篇文章。我应该补充一点,我不是一个很好的编码员,但我可以摸索基本知识。我试着将数据作为函数附加,以为可以解决这个问题,但很明显,如果不是其他什么的话,我把语法搞乱了。还有,even如果我处理得不正确,我想知道为什么我的尝试不起作用,以便我更好地了解发生了什么。这就是您试图做的。我已经对与嵌套选择相关的部分进行了注释。希望这能有所帮助。您以前的代码的问题是您在for循环中使用了
return
,这将导致我将在第一次迭代时返回,而不是继续循环。attr“cy”函数将只运行6次,因为数据集只有6个项(每个项都是一个数组)。谢谢,特别是关于它为什么不起作用的解释。我不知道“返回”只适用于通过的第一次迭代。不一定是直观的,但现在我知道我做错了什么。