2016-10-01 163 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;

希望它有帮助。