有人可以解释d3.js中的以下Javascript代码吗?

时间:2016-03-09 02:20:00

标签: javascript d3.js

var bar = chart.selectAll("g")
               .data(data)
               .enter().append("g")
               .attr("transform", function(d, i) 
               { 
                 return "translate(0," + i * barHeight + ")"; 
               });

有人可以解释为什么我们应该把" +"在i * barHeight之前和之后?

2 个答案:

答案 0 :(得分:1)

这将设置" g"的每个元素的transform属性。根据元素索引收集。

例如:如果barHeight = 10

<g tranform="tranlate(0, 0)"/>
<g tranform="tranlate(0, 10)"/>
<g tranform="tranlate(0, 20)"/>
<g tranform="tranlate(0, 30)"/>
<g tranform="tranlate(0, 40)"/>

答案 1 :(得分:0)

有助于格式化代码。

var bar = chart.selectAll("g") 
.data(data) 
.enter().append("g") 
.attr("transform", function(d, i) { return "translate(0," + i * barHeight + ")"; });

答案与d3无关。这就是你如何在javascript中使用变量创建字符串。相当于这样的事情:

var name = "Johnny"
console.log("Hello " + name + " how are you today?")
//Hello Johnny how are you today?