0
我正在使用d3中的散點圖,並且圖上的點代表紙張。點被設置爲一個類型。我想談的點都是 In_library。 removeFromlibrary是一個在下拉菜單的選項中定義的函數。在此函數中,我連接到數據庫以更新列庫中的布爾型假值。.splice方法不會在d3中刪除正確的數組項目
但我也想從我的數據數組中刪除這個項目。然後我想調用一個名爲refreshGraph()的函數來清除圖形並使用更新後的數組重新繪製點。我試圖從陣列(因此從顯示器一旦refreshGraph函數被調用移除)刪除此項目的方式是通過執行以下操作:
title: 'Remove from Library',
action: function removeFromLibrary (elem, d, i) {
d3.json("connection9.php?paperID="+d.ID, function(error, dataJson) {
if (d.type === "In_library") {
allData.splice(d, 1);
}
refreshGraph();
})
}
所以,如果我選擇點的類型爲 In_library(這是)我想從陣列中刪除這個項目。 這不起作用,當我在菜單中選擇一個點並選擇從庫中刪除選項時,它將刪除具有「In_library」類型的不同紙張。一個可能的原因是給予.splice方法的索引是錯誤的。
我是新來的d3,所以任何幫助表示讚賞!提前致謝!
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice。你正在使用'splice'錯誤。 – putvande
@putvande關於如何正確使用它,並從數組中刪除正確的對象的任何意見?謝謝 –
你需要你的元素在數組中的索引。你知道'allData'數組中'd'的索引嗎? – putvande