7

Array.map()D3セレクションのようなものはありますか?<text/>選択した 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()、戻り値の配列が返されません

4

2 に答える 2

1
var allLength

d3.selectAll(".element")
.each(function(d, i) {allLength[i]=d3.select(this).node().getComputedTextLength() })

var maxLength = d3.max(a)
于 2012-09-03T20:57:12.630 に答える
1

ええ、そのブラケットも私の目を痛めます。

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

質問は 2012 年のものでした。当時の d3 がどのようなものだったかはわかりませんが、現在のバージョンではd3.maxアクセサ関数を受け入れて、最大化している値を取得しています。

于 2014-08-09T01:39:15.640 に答える