我是一個非常初學的程序員(非常重視)。我想弄清楚如何遍歷顏色數組,以便製作三個不同顏色的矩形。這是我到目前爲止的代碼:D3 - 如何迭代顏色數組
var dataArray = [5, 11, 18];
var colors = ["red", "green", "black"];
var svg = d3.select("body").append("svg")
.attr("width","2000").attr("height","400");
svg.selectAll("rect")
.data(dataArray)
.enter()
.append("rect")
.attr("fill", function(d, i) { return colors*i}) //the line of code in question
.attr("x", function(d,i) { return 70*i + 50; })
.attr("y", function(d,i) { return d*15; })
.attr("height", function(d,i) { return 500; })
.attr("width", "50");
//code end
正如你所看到的,我一直在嘗試使用function(d, i)
通過陣列的顏色迭代,未果。完全公開:上面的代碼是爲一個類創建的,但這個特定的問題不屬於任務的一部分。我試圖超出任務範圍。
在d3中,你不需要像這樣使用for循環。將問題行更改爲'。attr(「fill」,function(d,i){return colors [i];})'就足夠了。這個for循環會在每次循環數組時打印所有的形狀(每次迭代都會有相同的顏色)。 –
@Andrew Reid我今天學到了一件東西:)謝謝! – Shtut
非常感謝!這也有助於我更好地理解我。 – RND