私のd3の選択は、大きなデータセットから始まり、その中の各要素のSVGに円を追加し、それが表すデータ項目のIDと一致するように円要素のIDを設定します。
次に、.data()
同じ選択を呼び出して、元のサブセットを渡します。予想どおり、これを行った後の画面上の円の数は、小さいデータセット内のアイテムの数と一致します。ただし、画面上の要素を調べると、それらのIDが新しいデータセットのアイテムのIDと一致していません。
なぜそうなのか?
キー関数をデータに渡さない場合、データはそれらの位置を介して既存の要素に関連付けられます。
あなたはおそらく次のようなものが欲しいでしょう
.data(data, function(d) { return d.id; });
ドキュメントから:
データを要素に結合する方法を制御するために、キー関数を指定できます。これは、デフォルトのインデックスによる動作に置き換わるものです。キー関数は、新しいデータ配列の要素ごとに1回呼び出され、選択範囲内の既存の要素ごとにもう一度呼び出されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加