說我們有(他們是如何鏈接不要沒關係針對這種情況)的4個鏈接節點力圖:節點數據更新d3.js V4力圖
{name: A, age: 15}
{name: B, age: 5}
{name: C, age: 4}
{name: D, age: 66}
現在我收到兩個節點:
{name: E, age: 12}
{name: A, age: 7}
我打算更新現在總共有5個節點的圖形,但我也想更新匹配節點的年齡。因此,節點A的最終結果(年齡)是22
我下面的程序是:
node = svg
.selectAll(".node")
.data(nodes, function (d) { return d.name; });
var nodeEnter = node
.enter()
.append("g")
.attr("class", "node");
nodeEnter
.append("circle")
.attr("r", 5);
所以在這裏的某個地方我還想總結年齡屬性。任何想法的人?
對,我可能在這裏丟失了一些東西。我有一個更新邏輯,這不是問題。我不能看到Mike在綁定新數據 –
時設置了關鍵功能時如何訪問舊數據屬性,因此您的選擇知道如何識別數據。您必須訪問d3之外的舊數據。然後進行處理,將數據輸入到更新函數中。或者我誤解了你的問題? – amirothman
當然,我可以在更新/合併期間訪問現有數據的屬性(年齡),而不是在外部進行。我想我已經很好地解釋了這個問題:如果節點匹配,新節點的age屬性將是old_node.age + new_node.age。也可能是因爲我沒有遵循你想要提出的建議,所以我的道歉 –