正数在JavaScript中的负数?

基本上,ABS的相反。 如果我有:

if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum } console.log(slideNum) 

不pipe什么控制台总是返回一个正数。 我该如何解决?

如果我做:

 if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ _selector.animate({left:(-slideNum*sizes.images.width)+'px'},750,'InOutPDX') } else{ _selector.animate({left:(slideNum*sizes.images.width)+'px'},750,'InOutPDX') } 

它适用于tho,但它不是“干”,只是愚蠢的有整个代码只是为了-

 Math.abs(num) => Always positive -Math.abs(num) => Always negative 

然而,你知道你的代码

 if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum } console.log(slideNum) 

如果find的索引是3并且slideNum是3,
那么3 <3-1 =>错误
所以slideNum 仍然是积极的

这对我来说更像是一个逻辑错误。

abs的Math.abs(num) * -1Math.abs(num) * -1

将正面转向负面或负面转向正面的基本公式:

 i - (i * 2) 

你确定控制进入了if的身体吗? 在这种情况下,这种if是否成立? 因为如果没有,if的主体将永远不会被执行, slideNum将保持正面。 我会冒险猜测这可能是你所看到的。

如果我在Firebug中尝试以下内容,似乎可行:

 >>> i = 5; console.log(i); i = -i; console.log(i); 5 -5 

slideNum *= -1也应该工作。 同Math.abs(slideNum) * -1

要在JavaScript中获得一个负数的数字,你可以使用~位运算符。

例如,如果你有a = 1000 ,你需要将其转换为负值,你可以执行以下操作:

a = ~a + 1;

这会导致-1000。

如果你不喜欢使用Math.Abs​​ * -1,你可以这么简单,如果声明:P

 if (x > 0) { x = -x; } 

当然,你可以使这个function是这样的

 function makeNegative(number) { if (number > 0) { number = -number; } } 

makeNegative(-3)=> -3 makeNegative(5)=> -5

希望这可以帮助! Math.abs将可能为你工作,但如果它不这样做

使用0 – x

x是你想要反转的数字