It说D3.js中的方法链接在单行代码中执行多个操作。但我不确定它在执行时关心的是性能。方法链接 - d3.js
例如, 通过方法链接,我们希望将代码象下面这样:
var data =[10,20,30,40]
wrap.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("x",function(d, j) {return scale(j); })
.attr("y",function(d,i){ return (h-d)})
.attr("width",scale.rangeBand())
.attr("height",function(d,i){ return (d)})
.style("fill","red");
在上述代码中,它会产生4个矩形,然后为每个4个矩形我们设置的属性“X”, “Y”, “宽度”, “高度”。
节数矩形---> 4节数属性( “X”, “Y”, “宽度”, “高度”) ---> 4节数重复中的每个属性 - - > 4(正弦4个矩形)4个属性的迭代次数---> 4 * 4 = 16次
这样的迭代次数真的需要吗?
通常我们做这样的,
wrap.forEach(function(d,i){
d.setAttribute("x", scale(i))
d.setAttribute("y",(h-d))
d.setAttribute("width",w)
d.setAttribute("height",h)
})
在上述方法中,节数反复使用 - > 4
所以什么d3.js方法链的优势,用上面提到的传统方法选择.daa 请说清楚??
不确定你的意思是“迭代”。通常,方法链可以让你编写更简洁的代码。你担心演出有什么特别的原因吗? –
是的,迭代意味着在这里执行循环的次数。 ofcourse方法链给出了更简洁的代码。但是执行的性能如何(执行循环所需的时间) – dakshna
代码中没有循环。 –