2016-10-01 99 views
0

速記我試圖在Javascript中使用速記if語句來查明我的一個參數是否爲負數,如果是,我想將其更改爲具體的價值。這裏是我的代碼:速記如果語句總是返回'假'而不是賦值

var findDigit = function(num, nth){ 
nth = nth < 0 ? nth === -1: nth; 
} 

我想要問的是,如果第n大於 0小於,然後第n更改爲-1,如果是小於0,什麼都不做,或者保留第n它的方式。當我控制檯記錄第n個參數時,我得到'假'。

我也遇到過這個問題。所以我想我要問的是,你如何寫一個沒有'else'部分的簡寫if語句?如果if語句是true,我希望它運行一段代碼,但如果它是假的,我不希望它做任何事情。謝謝!

+0

你可能意思是'-1'而不是'nnth === -1'。 – Xufox

+0

您在if部分中使用了等號運算符,您只需返回-1'var findDigit = function(num,nth){nth} nth = nth <0? -1:nth; }' – synthet1c

+0

您有一份任務說明。 '?'的結果被分配給'nnth'。如果'nnth'是負數,那麼你會說''''的結果是'nnth === -1',它可能是真或假,但不會是'-1'。 '?'不是'if'語句的簡寫形式。這是一個表達。 –

回答

1

由於if語句您nth正好是-1。只要忽略這部分並打印

var findDigit = function(num, nth){ 
    nth = nth < 0 ? -1: nth; 
} 
+0

啊,這是有道理的,我的錯誤。非常感謝! – newman

1

你不必做任何事情都要比將值:nth < 0下面的代碼被執行:nth === -1這是一個檢查(包括類型)如果

nth = nth < 0 ? -1: nth; 
1

我不知道很多關於JavaScript的,但我覺得您使用的比較操作===這就是爲什麼它返回布爾(假)值。

嘗試使用=分配值,即: nth = nth < 0? nth = -1:nth;

希望它有幫助。