2012-11-26 59 views
1
message += days + " day" + (days==1 ? '':'s') + ", "; 

如果我的櫃檯來到1個月和零日,當然會寫dayS。 如何將「OR」運算符傳遞給此代碼?或Javascript中的運算符...我很愚蠢||我錯過了什麼?

我想:

((days==1 ? '':'s') || (days==0 ? '':'s')) 

和:

(days==1||0 ? '':'s') 

他們都在顯示 「0」 值一個S

+1

,如果你不熟悉這種格式,你爲什麼不乾脆使用是否..其他格式 – polin

+0

((days == 1 || days == 0)?'':'s') – Hadas

+0

你的意思是'(days == 0 || days == 1?'':'s)'? – Ian

回答

2

你爲什麼不嘗試:

days < 2 

除非有負數的機會天

+0

:) off off!我已經在全球範圍內測試了這一天> 0,如果...在此代碼之前:) THX –

1

嘗試((days==1|| days == 0) ? '':'s')

1

「0天」是正確的,但如果你真的想:(days == 0 || days == 1 ? '' : 's')

或者:(days <= 1 ? '' : 's')(因爲你不能有天的負或非整數。

或者你可以這樣對整條生產線:

if(days) message += days + " day" + (days==1 ? '' : 's') + ", "; 
+0

+1'「0天」是正確的 – Musa

+0

它是如何確定的? –

+0

'1'是導致單數名詞的唯一數字。其他一切都是複數。例如,即使是「1.1秒」也是正確的。 –

1

寫這樣

message += days + " day" + (days<=1 ? '':'s') + ", ";