2016-11-17 24 views
2

需要检查三个条件并根据条件为变量赋值。在多个条件中使用? :javascript中的语句

if(a =="z1"){ 
    b = "one"; 
} else if(a =="z2"){ 
    b = "two"; 
} else if(a =="z3"){ 
    b = "three"; 
} 

是否可以在JavaScript中使用? :声明使其成为单行代码

+1

___Java == JavaScript___ – Rayon

+0

'b = [ '一个', '2', '3'] [A [1] -1 ]' –

回答

4

是的,您可以使用将其转换为Conditional(ternary) operator

var a = "z3"; 
 
var b = a == "z1" ? "one" : a == "z2" ? "two" : a == "z3" ? "three" : "" ; 
 

 
console.log(b);


FYI:为了更好的可读性,我会建议使用 if...else语句或使用 switch声明。尽管在复杂操作的情况下需要使用括号来嵌套三元运算符,以避免出现问题。

+1

但你不应该! – Rayon

+0

@Rayon:为什么不呢? –

+0

1)不必要2)不可读3)与传统的'if-else'条件相比没有优势... – Rayon

1
var b = (a =="z1") ? "one" : ((a =="z2") ?"two":(a =="z3")?"three":null); 

不要忘了,阅读这篇文章很难。 如果使用一个if else块,则可以使用。

1

你可以做这样的事情:???

B =(A == “Z1”, “一个” :(一== “Z2”, “二” :(一== “Z3”“三“:!未定义)))

1
var b = a == "z1" ? "one" : (a == "z2" ? "two" : (a == "z3" ? "three" : undefined)) ; 

a = "z1" 
 

 
alert(a == "z1" ? "one" : (a == "z2" ? "two" : (a == "z3" ? "three" : undefined))); 
 

 
a = "z2" 
 

 
alert(a == "z1" ? "one" : (a == "z2" ? "two" : (a == "z3" ? "three" : undefined))); 
 

 
a = "z3" 
 

 
alert(a == "z1" ? "one" : (a == "z2" ? "two" : (a == "z3" ? "three" : undefined))); 
 

 
a = "z4" 
 

 
alert(a == "z1" ? "one" : (a == "z2" ? "two" : (a == "z3" ? "three" : undefined)));