我刚刚开始使用javascript并且在理解下面这段(svg)代码时遇到问题,该代码使用javascript来定义它的x坐标和半径。我理解数据是如何绑定等的。但我的问题是 - 对于带有两个参数的函数: d和i ,其中定义函数的第一个参数是数据集,第二个参数是圆的计数器,即第一个圆为0,第二个圆为1,依此类推。
var dataset = [ 5, 10, 15, 20, 25 ];
var circles = svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle");
circles.attr("cx", function(d, i) {
return (i * 50) + 25;
})
.attr("cy", h/2)
.attr("r", function(d) {
return d;
});
感谢。
答案 0 :(得分:2)
这是d3,所以d3 documentation defines what the function expects
如果value是常量,则所有元素都被赋予相同的属性值;否则,如果value是一个函数,则为每个所选元素(按顺序)计算函数,传递当前数据d和当前索引i,并将此上下文作为当前DOM元素。