データ結合を使用して、データ要素ごとに 2 つの新しい要素を追加するシナリオがあります。
私はもともと次のようなことをしていました:
var y = d3.selectAll("line")
.data([123, 456]);
y.enter().append("line"); // assume attr and style set
y.enter().append("line");
y.transition()...
よく考える前に、トランジションで使用される更新選択には、入力選択からのマージされた追加が含まれると予想していました。しかしもちろん、データ要素ごとの選択には 1 つのスロットしかないため、これは機能しませんでした。
そこで、同じ enter() 選択を 2 回使用するようにコードを変更しましたが、移行を行うために新しい要素を再選択しました。
このアプローチは機能しましたが、私の質問は、これが推奨される方法であるかどうかです。追加/挿入した後は、必ず enter() の使用を停止する必要がありますか? または、更新選択には最後に作成された要素のみが含まれることを覚えている限り、それを使用して複数の要素を作成しても問題ありませんか?
これが間違っていることが判明した場合、これを達成するためのより良い方法は何ですか?