gpt4 book ai didi

javascript - 如何在循环中正确检查 javascript 数组中的字符串

转载 作者:行者123 更新时间:2023-11-28 15:23:58 25 4
gpt4 key购买 nike

y我有一个数组,它在循环中每 2 秒接收一个新字符串元素:

//tick world
setInterval(function(){
doTradeUpdate();
},5000);

function doTradeUpdate(){
var randyManu = Math.floor(Math.random() * 10);
switch(randyManu){
case 0:
//new duro mine
countPush(manufacture,"duro-mine");
break;

case 1:
//new e-plant
countPush(manufacture,"e-plant");
break;
//etc
}

function countPush(arrayz,addable){
console.log(arrayz);
console.log("Attempting to add: " + addable);
if(arrayz.length == 0){
arrayz.push(addable);
}
else{
if (arrayz.indexOf(addable) > 0){
console.log("FOUND");
}
else{
console.log("NOT FOUND");
arrayz.push(addable);
}
}
}

如果我让这段代码运行,对于相同的数组元素,有时结果会显示为“已找到”,有时会显示为“未找到”,例如:“e-plant”。因此,我最终可以得到数组中相同的多个条目。那么为什么我的代码无法一致地匹配元素呢?

这基本上就是整个脚本。没有其他东西触及数组。

非常感谢!

G

最佳答案

使用

if (arrayz.indexOf(addable) !== -1)
{
console.log("FOUND");
}
else
{
console.log("NOT FOUND");
arrayz.push(addable);
}

即使用 (!== -1) 而不是 (> 0)。
如果元素位于位置 0,则可能会显示“未找到”。您也可以按如下方式进行优化

function countPush(arrayz,addable)
{
console.log(arrayz);
console.log("Attempting to add: " + addable);
if(Array.isArray(arrayz))
{
if(arrayz.indexOf(addable) !== -1) {
console.log('Exists and found');
}
else {
arrayz.push(addable);
}
}
}

有更好的方法来检查变量是否是数组,我只是举一个例子!
另一点,如果您在两次调用中发送相同的数组,为什么每次都要发送 arrayz ?也许你可以将它放在一个公共(public)的外部命名空间中!

关于javascript - 如何在循环中正确检查 javascript 数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30027798/

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