尝试检查数组中是否存在值,但我的嵌套 if 语句正在返回 即使该值存在于数组中也是 false。这一直有效,直到我向循环中添加了 else 为止,现在仅当要检查的值是第一个索引时才有效。
var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var inp = parseInt(prompt("Enter a number to see if it is in the array:"));
function checkIfInArray(n, anArray) {
for (var i = 0; i < anArray.length; i++) {
if (num[i] == n) {
return true;
} else {
return false;
}
}
}
console.log(checkIfInArray(inp, num));
最佳答案
即使您在 for
循环中进行了检查,for
循环中的代码也仅运行一次,因为现在您已经添加了 否则
,它总是会返回一些东西。
如果没有找到任何内容,则返回 false 的正确方法是在 for 循环完成后添加 return false
。
for(var i = 0;i < anArray.length;i++)
{
if(num[i] == n)
{
return true;
}
}
return false;
关于javascript - 为什么函数在循环中仅检查一个值后返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27132162/