Svg d3数据索引卡在零上

Svg d3数据索引卡在零上,svg,d3.js,Svg,D3.js,当我运行控制台时,下面的代码将10个0打印到控制台。我期望0,1,2,3 var data = [{"id":1,"adjX":-1,"adjY":-1,"weight":1}, {"id":2,"adjX":-2,"adjY":0,"weight":1}, {"id":3,"adjX":0,"adjY":2,"weight":2}, {"id":4,"adjX":3,"adjY":-1,"weight":3}, {"id":5,"adjX":-2,"adjY":-6,"weight":5},

当我运行控制台时,下面的代码将10个0打印到控制台。我期望0,1,2,3

var data = [{"id":1,"adjX":-1,"adjY":-1,"weight":1},
{"id":2,"adjX":-2,"adjY":0,"weight":1},
{"id":3,"adjX":0,"adjY":2,"weight":2},
{"id":4,"adjX":3,"adjY":-1,"weight":3},
{"id":5,"adjX":-2,"adjY":-6,"weight":5},
{"id":6,"adjX":-10,"adjY":-2,"weight":8},
{"id":7,"adjX":3,"adjY":15,"weight":13},
{"id":8,"adjX":24,"adjY":-6,"weight":21},
{"id":9,"adjX":-10,"adjY":-40,"weight":34},
{"id":10,"adjX":-63,"adjY":15,"weight":55}]

.
.

svg.selectAll("line")
    .data(data)
    .enter().append("line")
    .attr("x1", function(d,i){
        console.log(i);
            return varX+(i*5);
         })
    .attr("y1", function(d,i){return varY+(i*5);})
    .attr("x2", function(d,i){return varX+(i*10);})
    .attr("y2", function(d,i){return varY+(i*10);});

为什么??请帮忙:

对我来说很好吗?要从一个向量到另一个向量画一条线,我应该使用x1=d[i-1].x到x2=d.x吗?通过检查确保i>0不必担心,我认为数据[i-1]是一条可行之路。