[英]javascript determine which OR statement triggered if statement
我有這樣的條件(簡化了很多,它們實際上是事件):
if(!a || !b || !c || !d){
//do something with 1,b,c, or d
}
如何確定哪個變量觸發了if? 在這里做if(a)else if(b)並不是一個很好的選擇,因為它會導致很多重復的代碼。
您可以嘗試使用一個返回第一個真實條件的索引的函數;如果所有條件都為false,則返回-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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.