D3是否为我们设置的每个回调循环遍历整个数组?

bachinblack

看起来d3每次设置回调时都会遍历整个数组。

起初,我认为调用函数喜欢attr()each()将它们添加到管道中,并且整个管道稍后又全部执行。

我试图设置代码以动态处理d3使用的SINGLE循环中的数据,而我刚刚发现each()哪个为每个点调用了一个函数。

目的是将我的观点从javascript对象转换为单个值,并避免在每个回调或单独的循环中这样做。

我尝试了一下,发现了这种行为。

这是一个基本示例:

d3.select(ref)
.selectAll("rect")
.data(data)
.enter()
.append("rect")
.each(function(d) { console.log(d); })
.attr("y", function(d) { console.log("attr y"); return 10; })
.attr("fill", function(d) { console.log("fill"); return "red";})

这是一个jsfiddle:http : //jsfiddle.net/7q3p2kah/1/

我期待看到这样:

red
attr y
fill
green
attr y
fill
...

但是我得到了:

red
green
blue
yellow
black
(4)attr y
(4)fill

所有此实验的目的是减少显示我的图形所需的时间。

我是否一定要使用一个单独的循环来处理我的数据,或者我没有得到什么?

它看起来很像“yes()或”no()问题,但是很高兴看到任何解释或替代解决方案。

易卜拉欣单宁

您可以将attr函数包装在内each

...
.each(function(d) { 
    d3.select(this)
    .call(function(selection){console.log(d);})
    .attr("y", function(d) { console.log("attr y"); return 10; })
    .attr("fill", function(d) { console.log("fill"); return "red";}
})
...

更普遍的像这里:https : //jsfiddle.net/ibowankenobi/wns19k4d/

如果您是我,我会将所选节点存储在NodeList或中,LiveHTMLCollection而不是使用d3.select(this)像之类的list[i]东西访问它们d3.select,从长远来看可能会有点慢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 d3 回调树中循环 js 数组

For 循环不遍历整个数组(Javascript)

遍历数组并使用d3将每个项目分配为html标签中的类

在d3中连续转换整个数组

在Highcharts中,对于3D图表,我们是否可以设置z轴的标签?

我们是否应该在调用异步回调的库中使用ConfigureAwait(false)?

在forEach循环中为每个循环设置状态后如何具有回调函数?

遍历数组,使用网络调用/回调功能检查每个元素,如果找不到所需元素,则将其设置为默认值

我们可以在WSO2ESB中设置一个数组吗?

对于每个循环:我们可以填充数组吗?

我们可以在Airflow中为每个任务设置priority_weight吗?

循环遍历数组并将每个元素解析为多个数据结构的最佳方法

如果我们为每个ABI上载不同的apk,是否需要上载Universal-apk?

我们是否应该将每个对象都公开为spring bean?

我们是否在双向 LSTM 中为每个批次使用不同的权重?

JavaScript 我们如何将 moment js 日期格式应用于整个数组

我们可以使用Dart中的箭头语法以级联符号设置多个回调吗?

php foreach循环无法遍历整个数组

我们如何检查数组中的值是否为空(无)?

遍历D3中的数组数组

为什么我们需要force.on(d3中的'tick'..

我们如何使用 d3 将 CSV 文件加载到 JupyterLab 中?

循环遍历多个数组并保持每个元素的计数

TYPO3-我们旧的TCA设置是否可移植到新的TCA / Override?

我们如何使用字符串数组的每个循环来仅打印非空元素

我们如何在迁移学习中为我们的培训设置标签?

我们可以在循环外打印数组吗?

在 azure Logic Apps 中,我们是否必须为每个集成创建单独的逻辑应用程序

在 Java 类中,我们是否为该类的每个对象都有单独的实例方法副本?