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