JavaScript if / else语句不返回false语句

时间:2017-01-22 13:36:34

标签: javascript arrays function if-statement

函数返回true,但是如果/ else语句正在记录false结果。我知道哪里出错了?



function loginDetails(arrayCheck, value) {
	for(i = 0; i < arrayCheck.length; i++){
  	if(arrayCheck[i] === value){
  		return true;
    }
  }
  return false;
  }

	var username = [1,2,3,4,5,6,7,8,9,10];
  
  document.write('Login Details: ', loginDetails(username, 9), '</p>');
 
  if(loginDetails === true) {
  document.write('Redirect ....Welcome !!</p>'); 
  
  } else {
  document.write('There seems to be an error please try again !!');
  }
  
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:1)

loginDetails是一个功能。然后测试它是否是布尔值true。有趣的是,它永远不会!

我认为你确实想要运行这个功能。您需要缓存结果,以便不运行两次:

function loginDetails(arrayCheck, value) {
	for(i = 0; i < arrayCheck.length; i++){
  	    if(arrayCheck[i] === value){
  		    return true;
        }
    }
    return false;
}

var username = [1,2,3,4,5,6,7,8,9,10];

var loggedIn = loginDetails(username, 9);
  
document.write('Login Details: ', loggedIn, '</p>');
 
if(loggedIn === true) {
    document.write('Redirect ....Welcome !!</p>'); 
} else {
    document.write('There seems to be an error please try again !!');
}
  

答案 1 :(得分:0)

if(loginDetails === true)你是什么意思?这并没有将任何参数传递给loginDetails函数 而是尝试if(loginDetails(username, 9) === true)。希望这样做。
否则将loginDetails(username, 9)存储在变量中并检查该变量是否为true

答案 2 :(得分:0)

loginDetails是一个函数我想你要检查它的结果是否等于true。

&#13;
&#13;
function loginDetails(arrayCheck, value) {
	for(i = 0; i < arrayCheck.length; i++){
  	if(arrayCheck[i] === value){
  		return true;
    }
  }
  return false;
  }

	var username = [1,2,3,4,5,6,7,8,9,10];

    var loginDetailsResult = loginDetails(username, 9);
  
  document.write('Login Details: ',loginDetailsResult, '</p>');
 
  if(loginDetailsResult === true) {
  document.write('Redirect ....Welcome !!</p>'); 
  
  } else {
  document.write('There seems to be an error please try again !!');
  }
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您正在检查该函数的 引用 是否等于true,它将始终评估为false。函数和布尔值是不同的类型,因此比较严格相等将始终返回false。我已经更正了代码,因此调用了函数,并比较了函数的结果,而不是对函数的引用。

&#13;
&#13;
function loginDetails(arrayCheck, value) {
	for(i = 0; i < arrayCheck.length; i++){
  	if(arrayCheck[i] === value){
  		return true;
    }
  }
  return false;
  }

	var username = [1,2,3,4,5,6,7,8,9,10];
  
  document.write('Login Details: ', loginDetails(username, 9), '</p>');
 
  if(loginDetails(username, 9) === true) {
  document.write('Redirect ....Welcome !!</p>'); 
  
  } else {
  document.write('There seems to be an error please try again !!');
  }
  
&#13;
&#13;
&#13;