2013-05-15 85 views
4

做我試圖瞭解this exampleD3.js代碼很困惑這段代碼:什麼結合對象在D3.js

var circle = interpolation.selectAll("circle") 
    .data(Object); 
circle.enter().append("circle") 
    .attr("r", 4) 
    .attr("fill","yellow"); 
circle 
    .attr("cx", function y(d) { console.log(d.attr("class")); return d.x; }) 
    .attr("cy", function(d) { return d.y; }); 

是什麼代碼的第二行實際上呢?它綁定了什麼數據?

回答

6

上述元素中綁定的數據由函數getLevels(d, t)給出,其中d是範圍2-4的數字,而t是從當前時間導出的數字。這個只返回一個數組數組。因爲數組是already of type Object,對數組調用對象()返回原始陣列。因此,從我所看到的,筆者簡單地使用對象作爲一種身份的功能,類似於:

var identity = function(d){ 
    return d; 
} 

var circle = interpolation.selectAll("circle") 
    .data(identity); 
circle.enter().append("circle") 
    .attr("r", 4) 
    .attr("fill","yellow"); 
circle 
    .attr("cx", function y(d) { console.log(d.attr("class")); return d.x; }) 
    .attr("cy", function(d) { return d.y; }); 
+0

謝謝,minikomi。我從來沒有見過'對象'被用作身份函數,所以我被這個困惑了。我用'function(d){return d; ''它也可以。感謝一個非常明確的解釋。 – BruceHill

+0

沒問題。這對我來說也有點頭疼。 – minikomi