2017-07-31 126 views
1

道歉,如果它看起來很簡單,我在這堆棧。我想,如果這些語句轉換成三元條件:轉換if語句爲三元條件運算符

if a!='-' && b!='_' 
action A 
else 
if a=='-' action B else action C 

我嘗試這樣做,不工作對我來說,這只是直接執行條件C

a!='-' && b!='_' ? Action A : (a=='-' ? Action B : Action C) 

如何制定的?謝謝。

+1

爲什麼?讓閱讀和理解變得更加困難是沒有好處的。 – Andreas

+0

在動作中包裝動作A,動作B和動作C,然後調用函數應該像'1a!=' - '&& b!='_'一樣工作? ActionA():(a ==' - '?ActionB():ActionC())' – Anil

+0

'你需要變形'(1a!=' - '&& b!='_')'否則它看起來像是工作ActionA():(a ==' - '?ActionB():ActionC()))' – Anil

回答

1

雖然有一些神奇的字母,它的作品。但請不要這樣做。

嵌套的四環操作難以閱讀,使您的小輩哭泣。不要這樣做。

如果你還想做

(a!='-' && b!='_') ? Action A : (a=='-' ? Action B : Action C) 

var a =1; 
 
    var b=1; 
 
    var c= 2; 
 

 
    (a==1 && b==1) ? alert("AB: true") : ((c != 1) ? alert("C: true") : alert("false"))

例2:

var a =1; 
 
    var b=1; 
 
    var c= 2; 
 

 
    (a==1 && b==2) ? alert("AB: true") : ((c != 1) ? alert("C: true") : alert("false"))

+0

實際上這是工作,謝謝! – ranell

0

這裏是一個適合您的需要嵌套三元語句的例子:

var action = a != '-' && b != '_' ? "A" : (a == '-' ? "B" : "C"); 

因此,例如,當var a = '-', b = '_'action"B"