gpt4 book ai didi

javascript - 如何从 d3 列表中删除所选项目

转载 作者:行者123 更新时间:2023-12-03 07:29:56 28 4
gpt4 key购买 nike

我正在使用 d3 散点图,当我右键单击一个点时,会出现一个下拉菜单。当我单击一个选项(称为“从库中删除”)时,我想从数组(libraryData)中删除该选定的项目/点。我是 d3 的新手,所以对我来说有意义的就是

libraryData.remove(d);

我知道这不是一个函数。我发现了类似的东西,那就是 array.splice() 函数。但当我不知道要在数组中删除的项目的位置时,我无法弄清楚如何应用它。这是我在菜单选项中定义功能的地方:

{
title: 'Remove from Library',
action: function (elem, d, i) {

d3.json("connection6.php?paperID="+d.ID, function(error, dataJson) {

libraryData.?????();
console.log(libraryData);
})
}

感谢任何帮助,因为你可以看出我是 d3 的新手!

最佳答案

使用remove(d),您的思路是正确的。

你可以使用这个:

d3.select(selectedElement).remove();

就像下面的例子,如果你想删除 ID 为“elephant”的元素,它会像这样:

nodes.each(function(d){
if(d.id ==='elephant'){
d3.select(this).remove();
}
}

也就是说,如果您在数据集中有 ID。您可以在此检查中使用任何内容。

或者更简单,如果你知道 ID 是大象,那就是:

d3.select('#elephant').remove();

或者说您有一个数据数组,只需将数组拼接到正确的索引处即可。

例如:

假设您有一些数据,并且想要删除 id 为“elephant”的数据;

使用id=elephant循环并删除元素

for(i=0;i<data.length;i++){
if(data[i].id === 'elephant'){
data.splice(i--,1);
}
}

注意我使用i--。这是为了更新数组,否则如果您想删除多个元素,您将得到错误的索引。

然后,一旦你拼接它,就可以更新你的可视化。

关于javascript - 如何从 d3 列表中删除所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844388/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com