2017-05-30 12 views
0

forループの条件が満たされている場合は、コードの実行を停止します。ただし、条件が満たされていない場合は、コードをforループの外側に継続してアラートを実行してください。残りのコードが実行されないようにする方法 - javascript

多くの情報源から 'return'キーワードを使用するように指示されました。私はそれを使用しましたが、条件が満たされても警告が実行されます。

キーワードを間違った場所に配置しましたか?または条件が満たされたときに機能を停止する良い方法がありますか?

これは私のjavascriptです:

function addEvent() { 
 
    var snumber = document.getElementById('snumberE').value; 
 
    var pass = document.getElementById('passE').value; 
 
    var passS = String(pass) 
 
    var snumS = String(snumber) 
 
    var arr = JSON.parse(localStorage.getItem('profiles')); 
 
    for(var i=0; i<arr.length; i++) { 
 
     if(arr[i].password == passS && arr[i].snumber == snumS) { 
 
      window.location = "StudentView.html"; 
 
      alert('YEAAA'); 
 
      return; 
 
     } 
 
     } 
 
    alert('Please enter valid login info'); 
 
    } 
 
function addEvt() { 
 
    var uname = document.getElementById('name').value; 
 
    var psw = document.getElementById('pass').value; 
 
    var arr1 = JSON.parse(localStorage.getItem('profilesT')); 
 
    for(var i=0; i<arr1.length; i++) { 
 
     var uname = document.getElementById('name').value; 
 
     var psw = document.getElementById('pass').value; 
 
     if(arr1[i].pass1 == psw && arr1[i].usern == uname) { 
 
      window.open('createAnnouncement.html'); 
 
      return; 
 
     } 
 
    } 
 
    alert('Please enter valid credentials or sign up'); 
 
}

+0

期待するものではありません。あなたが観察すると主張しているものは不可能です –

+1

前もってウィンドウの場所を変更したので、あなたの 'alert( 'YEAAA'); 'arr'には長さがあることも確かですか? – Kaiido

+0

はい、私はもう一度試してみました。私はおそらく私のコード内の他のエラーと混同していました。ありがとう! –

答えて

2

returnは、あなたがやりたいとあなたはそれを呼び出している機能を終了する必要があります。

この簡易バージョンでは、アラートは発生しません。あなた `return`が正しくあなたが望むもののために配置されたあなたの条件文は、あなたが期待する何をされていないか、または保存されたデータは、あなたが

function test() { 
 
    var nums = [1, 2, 3, 4, 5, 6]; 
 
    for (var i = 0; i < nums.length; i++) { 
 
    console.log('Loop fired for number ' + nums[i]); 
 
    if (nums[i] === 3) { 
 
     console.log('return now exiting function') 
 
     return; 
 
    } 
 
    } 
 
    alert("This alert shouldn't fire") 
 
} 
 

 
test();

+0

はい私のコードは今のところ必要に応じて動作します。私はおそらく私を混乱させる新しいページを開くためにさまざまな方法を試していました。ありがとう! –

関連する問題