Javascript Array.map()和D3选择?

Javascript Array.map()和D3选择?,javascript,svg,selector,d3.js,Javascript,Svg,Selector,D3.js,D3选择是否有类似于Array.map()的功能?为了找到SVG元素选择的最大长度,我目前执行以下操作。然而,.selectAll(…)[0].map(…)对我来说似乎是个黑客。有更好的办法吗 var chi = svg.selectAll('.chi'); var xChi = d3.max(chi[0].map(function (itm) { return itm.getComputedTextLength(); })); 我可以使用selection.each

D3选择是否有类似于
Array.map()
的功能?为了找到SVG
元素选择的最大长度,我目前执行以下操作。然而,
.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
接受一个访问函数来检索最大值。

谢谢,这是可行的,但是
d3.max(svg.selectAll('.chi')[0].map(函数(itm){return itm.getComputedTextLength();})也是可行的
对于D3选择,似乎没有与
Array.map()
等效的元素,这似乎是一个省略?