我试图创建一个将元素从一个数组推入另一个数组但不允许多个相同值的条目的函数。下面的代码不会基于我的条件突破该函数,而是将匹配元素第二次推入到新阵列中。此外,当我使用参数1,2或3运行代码时,它们将被推送到新的数组中,但是当我将函数传递给数字4时,我得到打印语句“数字不存在”。只是想知道为什么会发生这种情况,以及如何解决这个问题。谢谢!不允许将重复元素插入到JavaScript数组中
myArray = [1,2,3,4];
newOne = [];
function checkArray(num) {
if ((num in myArray) && (num in newOne)) {
return;
}
else if (num in myArray) {
newOne.push(num);
console.log(newOne);
}
else {
console.log("number not present");
}
}
checkArray(3);
checkArray(3);
checkArray(4);
[在运营商](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in)不检查内容,它检查存在。 – Teemu
'in'运算符检查给定* index *是否在数组中,* index *是否为值。你可以使用'Array#indexOf'方法来检查数组是否包含给定的值。 – csharpfolk
啊,好的,现在有道理!多谢你们! –