2015-04-09 2 views
0

Так вот ситуация, я не хочу писать doA дважды ... и я чувствую, что должно быть возможно достичь этого, не прибегая к функциям.Как упростить эту условную логику в javascript?

Как я могу это сделать?

Также я помню, как я читал о методах, чтобы сделать что-то вроде этого. Можете ли вы показать мне, как это делается.

if (condition) 
    if (condition) 
     ... 
    else if (condition) 
     ... 
    else 
     doA 
else 
    doA 

Код выше просто говорит, что это:

, если оно истинно, то (если это правда (...) еще, если оно истинно (...) еще DOA) еще DOA .. так как я хочу, главный if else для запуска в некоторых ситуациях, которые входят в main if.

+0

я не могу просто вернуться –

+0

А почему вы хотите, чтобы упростить его? Также, если вы вызываете одну и ту же функцию независимо от состояния, зачем вам это нужно? –

+2

[Не использовать метки] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label#Avoid_using_labels). – GregL

ответ

2
if (conditionA) 
    if (conditionB) 
     ... 
    else if (conditionC) 
     ... 
    else 
     doA 
else 
    doA 

может быть

if (conditionA && condition B) 

else if (conditionA && conditionC) 

else 
    doA 
+0

Я чувствую, что мой мозг просто увеличил количество нейронов. –

+0

это полностью соответствует моему комментарию выше 'только если условие A не выполнено ИЛИ условие A проходит, но оба condB и condC fail' –

+0

' if (conditionA &&! (CondtionB || conditionC)) doA' это то, что я сделал бы, если бы было ничего для других условий –

0

Может быть, это ...

var a = <condition a>, 
    b = <condition b>, 
    c = <condition c>, 
    doDoA = true; 

if (a) { 
    if (b) { 
     doB; 
     doDoA = false; 
    } else if (c) { 
     doC; 
     doDoA = false; 
    } 
} 

if (doDoA) { 
    doA 
} 
Смежные вопросы