Arrays D3函数仅迭代数组中数据的最后一点。
对于以下代码行,在数据中输入locationArray后,迭代将按数组的长度运行,但从最后一次迭代开始,因此I始终为=1(数组的长度为两个嵌套数组)。为什么不从数组[0]开始Arrays D3函数仅迭代数组中数据的最后一点。,arrays,d3.js,iteration,Arrays,D3.js,Iteration,对于以下代码行,在数据中输入locationArray后,迭代将按数组的长度运行,但从最后一次迭代开始,因此I始终为=1(数组的长度为两个嵌套数组)。为什么不从数组[0]开始 var canvas = d3.select("#map-canvas"); setTimeout(function(){ console.log(canvas) canvas .selectAll(".marker") .append('svg') .attr('width', 400)
var canvas = d3.select("#map-canvas");
setTimeout(function(){
console.log(canvas)
canvas
.selectAll(".marker")
.append('svg')
.attr('width', 400)
.attr('height', 400)
.style("position", "relative")
.style("right", 150)
.style("bottom", function() {
return 150;
})
var marker = canvas.selectAll(".marker")
console.log(marker)
marker
.selectAll('svg')
.data(locationsArray)
.enter()
.append('circle')
.attr("fill", "magenta")
.attr("r", 15)
.attr("cx", 165)
.attr("cy", 165)
.attr("class", function(d, i) {
console.log(d + i)
if (d[3] >= 30 && d[3] < 60) {
d[2] == 1 ? result = "smallBadVibe" :
d[2] == 2 ? result = "smallNeutralVibe" : result = "smallGoodVibe";
console.log(result)
return result;
}
var canvas=d3.选择(“映射画布”);
setTimeout(函数(){
console.log(画布)
帆布
.selectAll(“.marker”)
.append('svg')
.attr('width',400)
.attr('height',400)
.风格(“位置”、“相对”)
.style(“右”,150)
.style(“底部”,函数(){
返回150;
})
var marker=canvas.selectAll(“.marker”)
console.log(标记器)
标记
.selectAll('svg')
.数据(位置阵列)
.输入()
.append('圆')
.attr(“填充”、“洋红色”)
.attr(“r”,15)
.attr(“cx”,165)
.attr(“cy”,165)
.attr(“类”,函数(d,i){
控制台日志(d+i)
如果(d[3]>=30&&d[3]<60){
d[2]==1?result=“smallBadVibe”:
d[2]==2?result=“smallNeutralVibe”:result=“smallGoodVibe”;
console.log(结果)
返回结果;
}
请参阅和的第5节。是的,解决了这个问题。谢谢Lars。我只是在选择“svg”后添加了一个.selectAll('div')。不过,我还有另一个问题,我真的想为每个数据点运行上面的整个代码,而不是为“.marker”的每个实例运行整个数据,是否有一种方法可以调用数据或启动数据的迭代序列,以便每次数据迭代都将数组的索引绑定到标记的实例?我不明白你在说什么--你说的“数据迭代”是什么意思?顺便说一句,我确实读了你的文章,它帮助我澄清了一些事情,尽管它确实给我留下了一个索引的替代方案,我现在还不能完全理解。我想我的意思是,每次数组中的数据点通过数据输入后的代码求值时。请参阅和的第5节。是的,解决了。谢谢Lars。我simp在选择“svg”之后,我添加了一个.selectAll('div')。但是,我有另一个问题,我真的想为每个数据点运行上面的整个代码,而不是为“.marker”的每个实例运行整个数据,是否有一种方法可以调用数据或启动数据的迭代序列,以便每次数据迭代都将数组的索引绑定到标记的实例?我不明白你在说什么--你说的“数据迭代”是什么意思?顺便说一句,我确实读了你的文章,它帮助我澄清了一些事情,尽管它确实给我留下了一个索引的替代方案,我现在还不能完全理解。我想我的意思是,每次数组中的数据点通过数据输入后的代码求值时。