Javascript 在D3JS中将数据绑定到DOM

Javascript 在D3JS中将数据绑定到DOM,javascript,d3.js,Javascript,D3.js,我的代码非常简单,如下所示: function draw(data){ svg.data(data) .enter() .append("path") .attr("fill",data.[i-th].color) .attr("d", function(d) { return design(d.x,d.y); }); } d3.json("data/dataset.j

我的代码非常简单,如下所示:

function draw(data){
    svg.data(data)
        .enter()
        .append("path")
        .attr("fill",data.[i-th].color)
        .attr("d", function(d) { 
         return design(d.x,d.y);
           });

    }


d3.json("data/dataset.json")
     .then(function(data) {
          draw(data); //is an array of elements x,y,color
      })

draw
函数中,数据被正确绑定到DOM,但我的问题是属性
fill
,因为我希望它接受数据数组的第I个元素。

要修改第I个
元素的fill属性,需要一个在数据上迭代的函数(带有索引变量)。例如:
.attr(“fill”,function(d,i){if(i==sometarget){…}else{…})
(将
sometarget
更改为所需的值)。如果
i-th
是一系列元素,则调整条件以查找值的范围。只需使用函数返回
.color
属性:
.attr(“fill”,d=>d.color)
。这将对绑定到DOM的每个数据执行,即D3将注意为第i个元素返回第i个颜色。此外,更多的是样式问题,
。然后(函数(数据){draw(数据);})
可以大大缩短为
。然后(draw)
。谢谢,我解决了。为什么如果数据是一个对象数组,我需要
选择All
,而如果它是一个简单数组,如
[3,4,5,6]
我不需要
selectAll
将数据绑定到DOM?请@altocumulus将您的回答写在正确的答案中,这样它就可以被接受。另一方面,@stackfac,您可能应该打开另一个问题,而不是使用注释来回答其他问题。这样,其他有类似问题的用户可以从中受益。要修改
i-th
元素的fill属性,您需要一个对数据进行迭代的函数(带有索引变量)。例如:
.attr(“fill”,function(d,i){if(i==sometarget){…}else{…})
(将
sometarget
更改为您想要的值)。如果
i-th
是一系列元素,则调整条件以查找值的范围。只需使用函数返回
.color
属性:
.attr(“fill”,d=>d.color)
。这将对绑定到DOM的每个数据执行,即D3将注意为第i个元素返回第i个颜色。此外,更多的是风格问题,
可以显著缩短为
。then(draw)
。谢谢,我解决了。为什么如果数据是一个对象数组,我需要
选择All
,而如果它是一个简单数组,如
[3,4,5,6]
我不需要
selectAll
将数据绑定到DOM?请@altocumulus将您的回答写在正确的答案中,这样它就可以被接受。另一方面,@stackfac,您可能应该打开另一个问题,而不是使用注释来回答其他问题。这样,其他有类似问题的用户可以从中受益.