如何阻止其余代码被执行 - javascript

时间:2017-05-30 00:49:00

标签: javascript for-loop return

如果满足for循环中的条件,我希望代码停止运行。虽然,如果条件不满足,我希望代码继续在for循环之外并执行警报。

许多消息来源告诉我使用' 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');
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

return应该执行您想要的操作并退出您调用它的函数。

在这个简化版本中可以看到警报不会被激发。您的条件不符合您的期望,或者存储的数据不符合您的期望

&#13;
&#13;
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();
&#13;
&#13;
&#13;