2016-01-06 77 views
0

嗨,我想知道有没有更好的方法来做到这一点? condition_a比B更重要,B是比C更重要的是,等如何优化嵌套if?

var slot = condition_a 

if (!slot) { 
    slot = condition_b 
    if (!slot) { 
    slot = condition_c 
    if (!slot) { 
     slot = condition_d 
     if (!slot) { 
     slot = condition_e 
     } 
    } 
    } 
} 

if (slot) { 
    //do something 
} 
+0

这就是HomeWork? – CoderPi

+0

没有比这更好的方法了。无论你做什么都是正确的方式。 –

+0

不,我25岁。刚刚学习爱好。 – lock

回答

-1

,如果你需要slot有一个值(而不是仅仅用它来测试在最后的条件)

var slot = condition_a || condition_b || condition_c || condition_d || condition_e; 
if (slot) { 
    // do soemthing 
} 
+0

你没有看到以前的相同答案吗? –

+0

@DenysSéguret - 不,请给我一个以前的**相同的**答案,为您赢得大奖的机会 –

+0

@Jaromanda X是的,谢谢这是我做的确切方式。 var slot =(a || b || c); if(slot){slot.dosomething()}; – lock

3

你做一个OR

if (condition_a || condition_b || condition_c || condition_d || condition_e) { 
     // do something 
} 

这相当于你的代码。如果条件评估为true,则不检查以下条件(它被称为short circuit evaluation)。这使得它可能有检查这样的:

if (a===null || a.b===0) { 

要小心,在同一个地方这么多的条件看起来像一个代码味道:有可能是一些还没有被设计语义不够。

+0

有没有需要downvote也没有upvote在我看来... –

+0

不知道为什么这得到downvote,这似乎是一个完全有效的答案。 –

+0

我没有downvoted,但我认为他希望'if(!condition_a ||!condition_b || ...!condition_e)' – gurvinder372

0

您可以使用||条件这样也,

slot = condition_a||condition_b||condition_c||condition_d; 

Fiddle