2016-10-01 20 views
0

私は引数が空であるかどうかを調べるためにJavascriptで簡略化if文を使用しようとしています。特定の値。ここに私のコードは次のとおりです。ifステートメントは、値が代入される代わりに常に「false」を返す

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

私が尋ねるしようとしていますn番目が 0より小さい場合、それが0未満ない場合は、-1にn番目を変更する何もしない、またはn番目を維持されますそれは方法です。私がn番目の引数をコンソールログに記録すると、私は「偽」になります。

私はこの問題を別の時間も実行しました。だから、私が尋ねているのは、「else」セクションなしでif-statementを簡潔に書く方法です。 if文がの場合はの場合は実行したいコードブロックがありますが、falseの場合は何もしたくありません。ありがとう!

+0

おそらく 'nth === -1'の代わりに' -1'を意味しています。 – Xufox

+0

if部分で等価演算子を使用している場合、-1を返すだけです。var findDigit = function(num、nth){ nth = nth <0? -1:nth; } ' – synthet1c

+0

あなたは代入文を持っています。 '? 'の結果は' nth'に代入されます。 'nth'が負の場合、'? 'の結果は' nth === -1'です。これは真または偽であるかもしれないが決して '-1'ではありません。 '?'は省略形の 'if'文ではありません。それは表現です。 –

答えて

1

をためのあなたのif文:次のコードが実行されますnth < 0nth === -1をチェックがあれば(タイプを含む)でありますnthはちょうど-1です。ただ、この部分を省略して、私はジャバスクリプトについて多くを知らない

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

ああ、それは間違いありません。どうもありがとう! – newman

1

あなたは値を配置するよりも、他に何もする必要はありません。

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

印刷し、私はあなたがそれをブール値(false)の値を返している原因だという比較演算子===を使用していることを感じます。

値を割り当てるために=を使用してください: nth = nth <? nth = -1:nth;

希望します。

関連する問題