d3.js - D3匿名函数中的第三个变量

标签 d3.js

假设您有一个绑定(bind)了一些数据的选择,并且您使用典型的内联匿名函数来访问该数据:

 d3.select("#whatever").each(function(d,i,q) {console.log(d,i,q)})

我们都知道第一个变量是数据,第二个是数组位置。但是第三个变量(在这种情况下为 q)代表什么?到目前为止,在我测试过的所有东西中,它总是归零。

最佳答案

secret 的第三个参数仅在您拥有 nested selections 时使用。 .在这些情况下,它保存父数据元素的索引。例如考虑这个代码。

var sel = d3.selectAll("foo")
            .data(data)
            .enter()
            .append("foo");
var subsel = sel.selectAll("bar")
                .data(function(d) { return d; })
                .enter()
                .append("bar");
假设 data是嵌套结构,您现在可以执行此操作。
subsel.attr("foobar", function(d, i) { console.log(d, i); });
不出所料,这将记录嵌套及其索引中的数据项。但你也可以这样做。
subsel.attr("foobar", function(d, i, j) { console.log(d, i, j); });
这里di仍然指的是相同的东西,但是 j指父数据元素的索引,即foo的索引元素。

关于d3.js - D3匿名函数中的第三个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20437116/

相关文章:

javascript - 为气泡图设置特定颜色

canvas - D3.Geo.Circle with Canvas

javascript - 具有力布局的散点图

javascript - D3 : gauge chart with growing arc

csv - D3 加载 CSV 文件,然后仅使用特定列

javascript - 使用 d3js 中的用户输入在下拉菜单上创建多个图表

javascript - D3 在正在进行的转换期间停止交互

javascript - 无法在 bootstrap div 上插入 d3 图表

javascript - 将 SVG 容器中最顶部的对象推到底部

javascript - d3.js 前置加号