gpt4 book ai didi

javascript - 如何检查数组以查看其中是否有值,javascript

转载 作者:行者123 更新时间:2023-11-30 07:14:58 24 4
gpt4 key购买 nike

我正在将 javascript 与 D3 一起使用。我正在创建一组节点,我希望能够单击它们并将该节点的 ID 添加到一个数组中,以便我可以将该数组打印到控制台以查看所选节点并对所选节点执行任何我想做的事情。 (基本上选择和取消选择节点)

我已经完成了一个点击事件,所以节点的 ID 转到了选定的数组。但是我想在它进入列表之前检查这个数组,看看它是否已经存在,所以没有重复的信息。

selectedNodesArray=[];

for(var i = 0; i< selectedNodesArray.length; i++)
{
if(selectedNodesArray[i] === d.coreId)
{
console.log("that node is already selected");
} else
{
selectedNodesArray.push(d.coreId);
}

}
console.log(selectedNodesArray);
}

上面是我的for循环,我不明白为什么它不起作用。有任何想法吗 ?


T.J.Crowder 的回答

if (!selectedNodesArray.some(function(entry) { return entry == d.coreId; })) {
selectedNodesArray.push(d.coreId);
}

最佳答案

为什么不使用数组的“indexOf()”方法来查找该项目是否已经存在于数组中?如果存在,则返回项目的位置,否则返回 -1。这比通过 For 循环要快得多。

if(selectedNodesArray.indexOf(d.coreId)===-1){
selectedNodesArray.push(d.coreId);
}else{
console.log("that node is already selected");
}

现在为了删除已经存在的项目,您可以使用 splice()。首先使用 indexOf() 找到该项目,然后使用 splice() 从列表中删除该项目。

关于javascript - 如何检查数组以查看其中是否有值,javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27041149/

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