2012-06-15 39 views
1

的CoffeeScript - 如何幹涸這兩個說法

alert 'yesb' if "blow" in ["slow", "flow", "blow"] 
alert 'nob' if "blow" not in ["slow", "flow", "blow"] 

我寧願有

alert 'yesb' if "blow" in ["slow", "flow", "blow"] else alert "nob" 

alert 'yesb' if "blow" in ["slow", "flow", "blow"] else "nob" 

alert 'yesx' else alert 'nob' if "xrow" not in ["slow", "flow", "grow"] 

alert 'yesx' else 'nob' if "xrow" not in ["slow", "flow", "grow"] 

但它們都會給出語法錯誤。

回答

3

CoffeeScript的三元if-then語法是if a > b then c else d

所以,你要尋找的是...

alert(if "blow" in ["slow", "flow", "blow"] then 'yesb' else 'nob') 

從Python中來的時候有這個問題太因爲Python的語法c if a > b else d

+0

哇......我還是挺(正)驚訝[所產生的JavaScript(http://coffeescript.org/#try:alert%20if%20something%20in%20%5B%22slow%22 %<%20%22%22%2C%20%22%22%5D%20%20'yesb'%20else%20'nob'%0A)對於<數組>中的某些內容= D – epidemian

1

if是coffee-script中的一個表達式,這意味着您可以像使用JavaScript(或其他類似C語言)的三元運算符<condition> ? <if_true> : <else>一樣使用它。它會返回最後一個值。所以,你可以使用這樣的事情:

alert if yourVar in ['slow', 'blow', 'grow'] then 'yes' else 'no' 
0

如果我和你的第一個變化去,我認爲這會工作:

if "blow" in ["slow", "flow", "blow"] alert 'yesb' else alert "nob" 
1

爲什麼你不能用最基本的東西:一個if...else的語句。

if "blow" in ["slow", "flow", "blow"] 
    alert "yesb" 
else 
    alert "nob"