有很多实例我需要根据其选择组(更新,输入,退出)中的元素索引,而不是数据中的索引。我怎样才能得到这个指数?
例如,如果我退出4个元素。
legends.exit()
.transition()
.delay(d=>i*25)
.style("opacity",0)
在这种情况下, i
是[8,12,15,20]。如何将索引设置为[0,1,2,3];
我的快速而肮脏的解决方案就是这样。我可以在d3的背景下这样做吗?
var i = 0;
legends.exit()
.transition()
.delay(d=>i++*25)
.style("opacity",0)
答案 0 :(得分:0)
您应该能够将以下代码调整到您的解决方案中:
.delay(function(d,i){ return (i-legends.size()); })
或者,以下工作在我的小测试示例中,但我不确定为什么。 filter
是必要的。
legends.exit().filter(function(d){return true;})
.transition()
.delay((d,i)=>i*25)
.style("opacity",0)
我最好的猜测是应用过滤器“重置”选择的索引。