2017-07-31 51 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"

相关问题