为什么函数在循环中只检查一个值后返回 false
Why does function return false after checking only one value in 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
-循环中的代码也只运行一次,因为现在您已经添加了else
,它将始终返回一些内容。
如果未找到任何内容,返回 false 的正确方法是在 for 循环完成后添加return false
。
for(var i = 0;i < anArray.length;i++)
{
if(num[i] == n)
{
return true;
}
}
return false;
你应该使用这个:
function checkIfInArray(n,anArray)
{
for(var i = 0;i < anArray.length;i++)
{
if(num[i] == n)
{
return true;
}
}
return false;
}
您有一个 if 语句要在第一次检查时返回,无论真还是假
你的函数将在第一个"返回"处停止和退出。如果在循环后添加返回 false,它将确保如果函数在循环后没有退出(= 不在数组中),它将返回 false :
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;
}
}
return false;
}
var result = checkIfInArray(inp,num);
console.log(result)
我在
做我的反应应用程序时遇到了类似的问题。我们可以使用 Array.some(),如果至少有一个条件为真,这将返回true
。
const array = [1, 2, 3, 4, 5];
const twoExists = array.some(value => value === 2)
console.log(twoExists)
// expected output: true
相关文章:
- 如果循环中至少有一个元素返回 false,如何将变量设置为 false
- jQuery ajax async:false会导致一个奇怪的警告
- 循环遍历所有字段,如果任何一个字段的验证失败jquery,则返回false
- 与 FALSE 的比较等同于否定值.这是一个重新锐利的错误
- cache:false 在 ajax 调用中用 URl 附加一个值
- 在input.checked=true/false _without_ jQuery上触发一个事件
- 为什么函数在循环中只检查一个值后返回 false
- Page_ClientValidate返回 false,但没有一个验证器有错误
- 如果为false,拖放会将我带到另一个网站,如果为true,则会重新启动动画
- 为什么JavaScript在比较一个变量和两个true语句时返回false
- Javascript:添加'false'在运行一个函数之后
- 为什么一个空的javascript对象既不是true也不是false
- 如果上一个字符串为true,则返回false,否则为true-javascript
- 逗号分隔的值(1,2,3,4)或(1,false)总是给出javascript中的最后一个元素
- 监视一个方法与西农.方法绑定到事件侦听器.方法已执行,但.calledOnce为false
- 在javascript中,是一个空字符串,作为布尔值总是为false
- 如何停止滚动或移动下一个标签,如果我的javascript函数返回false
- 如果一个或多个if语句为false,我如何返回false并停止发送电子邮件
- 我怎么能返回一个空对象同时空对象等于布尔值false在javascript
- Control + s,返回false,但仍然调用另一个函数