for (var i = 0; i < res.length; i++) {
if (res[i] != 'a' && res[i] != '-b') {
} else {
// alert will triger multiple times here
alert();
}
}
我遍历一个数组来检查一下,我怎样才能在else语句中运行一次?如果我在那里放置一个函数,它会多次触发。
答案 0 :(得分:2)
在你的其他行动之后你需要break;。
答案 1 :(得分:2)
试试这个:
for (var i = 0; i < res.length; i++) {
if (res[i] != 'a' && res[i] != '-b') {
} else {
// alert will triger multiple times here
alert();
break;
}
}
答案 2 :(得分:1)
您可以使用一个标志来指示是否执行了else块,如果是,则不再执行
var run = true;
for (var i = 0; i < res.length; i++) {
if (res[i] != 'a' && res[i] != '-b') {
} else if (run) {
// alert will triger multiple times here
alert();
run = false;
}
}
答案 3 :(得分:0)
你可以使用一个简单的布尔标志:
// Introduce the flag before your for loop
var process = true;
for (var i = 0; i < res.length; i++) {
if (res[i] != 'a' && res[i] != '-b') {
} else if(process) {
// alert will triger multiple times here
alert();
process = false; // Reset the process flag
}
}