JavaScript中的正数到负数?

时间:2011-04-06 23:24:00

标签: javascript jquery math

基本上,abs的反向。如果我有:

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

无论什么控制台总是返回正数。我该如何解决这个问题?

如果我这样做:

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')
}

它起作用,但它不是“干”而只是愚蠢的整个代码块只是为-

13 个答案:

答案 0 :(得分:152)

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

然而,您确实意识到,对于您的代码

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

如果找到的索引是3且slideNum是3,则 然后3&lt; 3-1 =&gt;假
所以slideNum 仍然是正面的 ??

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

答案 1 :(得分:70)

abs的反面是Math.abs(num) * -1

答案 2 :(得分:23)

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

i - (i * 2)

答案 3 :(得分:6)

您确定控件是进入if的正文吗?正如if中的条件是否成立一样?因为如果不这样做,if的正文将永远不会被执行,slideNum将保持正面。我打算猜测这可能就是你所看到的。

如果我在Firebug中尝试以下操作,它似乎有效:

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

slideNum *= -1也应该有效。应该Math.abs(slideNum) * -1

答案 4 :(得分:6)

要在JavaScript中获取数字的否定版本,您始终可以使用~按位运算符。

例如,如果您有a = 1000,并且需要将其转换为否定值,则可以执行以下操作:

a = ~a + 1;

会导致a为-1000。

答案 5 :(得分:4)

如果您不想使用Math.Abs​​ * -1,那么您可以使用以下简单声明:P

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

当然你可以把它变成这样的功能

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

makeNegative(-3)=&gt; -3 makeNegative(5)=&gt; -5

希望这有帮助! Math.abs可能会对你有用,但如果它没有这个

答案 6 :(得分:3)

var x = 100;
var negX = ( -x ); // => -100

答案 7 :(得分:3)

JavaScript为此提供了专用的运算符:unary negation

TL; DR:这是减号!

要取反数字,只需以最直观的方式在数字前加上-即可。无需编写函数,使用Math.abs()乘以-1或使用按位运算符。

一元否定符适用于数字文字:

let a = 10;  // a is `10`
let b = -10; // b is `-10`

它也适用于变量:

let x = 50;
x = -x;      // x is now `-50`

let y = -6;
y = -y;      // y is now `6`

如果您使用分组运算符,您甚至可以多次使用它(也称为括号:

l = 10;       // l is `10`
m = -10;      // m is `-10`
n = -(10);    // n is `-10`
o = -(-(10)); // o is `10`
p = -(-10);   // p is `10` (double negative makes a positive)

以上所有内容也都适用于变量。

答案 8 :(得分:2)

var i = 10;
i = i / -1;

结果:-10

var i = -10;
i = i / -1;

结果:10

如果除以负数1,它将始终以任意方式翻转数字。

答案 9 :(得分:1)

使用0 - x

x是您要反转的数字

答案 10 :(得分:1)

它将负数组转换为正数组,反之亦然

function negateOrPositive(arr) {
    arr.map(res => -res)
};

答案 11 :(得分:0)

在普通javascript中

if(number > 0)
  return -1*number;

上面的数字是您要转换的正数

此代码仅需乘以-1,即可将正数转换为负数

答案 12 :(得分:0)

num * -1

这将为您做到。