簡體   English   中英

javascript確定哪個OR語句觸發了if語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM