Array.map() and D3 selection?

Array.map() and D3 selection?

本文关键字:D3 selection and map Array      更新时间:2023-09-26

D3选择有类似Array.map()的内容吗?为了找到SVG <text/>元素选择的最大长度,我目前执行以下操作。然而,.selectAll(...)[0].map(...)在我看来像是一个黑客。有更好的方法吗?

      var chi = svg.selectAll('.chi');
      var xChi = d3.max(chi[0].map(function (itm) { return itm.getComputedTextLength(); }));

我可以使用selection.each()在一个选择上迭代一个函数,但我不知道如何将其与d3.max()结合起来。我尝试了d3.max(chi.each(function (itm) { return itm.getComputedTextLength(); })),但d3.each()并没有返回返回值

的数组
var allLength
d3.selectAll(".element")
.each(function(d, i) {allLength[i]=d3.select(this).node().getComputedTextLength() })
var maxLength = d3.max(a)

是的。。那个支架也让我眼睛疼。

d3.max(svg.selectAll('.chi').pop(), function(item) {
  return itm.getComputedTextLength()
})

这个问题来自2012年。我不知道d3当时是什么样子,但当前版本的d3.max接受一个访问器函数来检索您最大的值。