javascript - 为什么函数在循环中仅检查一个值后返回 false

标签 javascript function if-statement for-loop

尝试检查数组中是否存在值,但我的嵌套 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/

相关文章:

JavaScript let 和 var 用法

php - 使用 PHP 将 HTML 替换为 HTML

arrays - 如何构建 if 语句并与各种值进行比较?

javascript - IF 语句中的多个条件

linux - 比较字符串时出现问题 (BASH)

javascript - 通过选择显示下一个字段集

javascript - React-Toolbox RadioGroup onChange 不起作用

JavaScript 未分配给全局变量

javascript - 如何在 Node.Js 应用程序中使用 "multer"模块

python - 将表达式传递给函数