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

前端之家收集整理的这篇文章主要介绍了d3.js – D3匿名函数中的第三个变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设您有一些选择与一些数据绑定,您使用典型的在线匿名函数来访问该数据:
d3.select("#whatever").each(function(d,i,q) {console.log(d,q)})

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

解决方法

秘密的第三个参数只有当你有 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");

假设数据是一个嵌套的结构,你现在可以这样做了.

subsel.attr("foobar",function(d,i) { console.log(d,i); });

这并不奇怪,将数据项记录在嵌套及其索引中.但你也可以这样做.

subsel.attr("foobar",j) { console.log(d,j); });

这里d和i仍然是指相同的东西,但是j指的是父数据元素的索引,即foo元素的索引.

原文链接:https://www.f2er.com/js/152099.html

猜你在找的JavaScript相关文章