如果满足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;
答案 0 :(得分:2)
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();
&#13;