0
我有这样的条件(这是简单得多,他们实际上是事件):的JavaScript确定哪些OR语句触发if语句
if(!a || !b || !c || !d){
//do something with 1,b,c, or d
}
我怎么确定哪些变种引发的,如果?如果(a)否则如果(b)在这里不是一个好的选择,因为它会导致很多重复的代码。
我有这样的条件(这是简单得多,他们实际上是事件):的JavaScript确定哪些OR语句触发if语句
if(!a || !b || !c || !d){
//do something with 1,b,c, or d
}
我怎么确定哪些变种引发的,如果?如果(a)否则如果(b)在这里不是一个好的选择,因为它会导致很多重复的代码。
你可以只尝试与返回的第一个真正的状况的指数函数,或-1,如果所有条件都是假的:在一个阵列
var conditions = [];
conditions.push(a);
conditions.push(b);
conditions.push(c);
conditions.push(d);
// ...
var triggerer = (function(){
for(var i = 0; i < conditions.length; i++){
if(conditions[i]){ return i; };
}
return -1;
})();
if(triggerer != -1){
// Do something with conditions[triggerer]
}else{
// Do something when everything is false
}
存储你的条件,并检查他们在一个循环:
var values = [a, b, c, d];
for(var i = 0; i < values.length; i++) {
if(!values[i]) {
//...
// `values[i]` is the *first* condition that satisfies the `if` statement.
break;
}
}
你只需要一个变种,还是你需要对所有的变种行事'!var'是真的?如果'!a'是真的,但'!c'也是如此,你是否需要两者? –
你想要简化这种方式?为什么'如果(a)否则如果(b)'导致大量重复的代码? – Oriol
JS中没有'or'运算符。 – 2016-04-08 18:31:28