基本上,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')
}
它起作用,但它不是“干”而只是愚蠢的整个代码块只是为-
答案 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
这将为您做到。