尝试检查数组中是否存在值,但是我的嵌套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;
}
}
}
var result = checkIfInArray(inp,num);
答案 0 :(得分:3)
即使您在for
- 循环内部进行检查,for
- 循环内的代码也只运行一次,因为现在您已经添加了else
,它将始终归还。
如果找不到任何内容,则返回false的正确方法是在for循环结束后添加return false
。
for(var i = 0;i < anArray.length;i++)
{
if(num[i] == n)
{
return true;
}
}
return false;
答案 1 :(得分:0)
你的功能会停止&amp;退出第一个&#34;返回&#34;。如果在循环后添加一个返回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);
答案 2 :(得分:0)
你应该用这个:
function checkIfInArray(n,anArray)
{
for(var i = 0;i < anArray.length;i++)
{
if(num[i] == n)
{
return true;
}
}
return false;
}
答案 3 :(得分:0)
你有一个if语句在第一次检查时返回,无论是真还是假