我有一个变量,有时会是负数,有时是正数。
在我使用之前,我需要让它变得积极。我怎么能做到这一点?
答案 0 :(得分:54)
使用Math.abs方法。
下面有一条关于使用否定的评论(感谢Kelly让我考虑到这一点),如果你对{{进行本地引用,那么对于Math.abs
而言,它会比Math.abs
略快一些1}}函数(没有本地引用Math.abs
要慢得多)。
查看answer to this question了解更多详情。小数字的差异可以忽略不计,我认为Math.abs是一种更清晰的“自我记录”代码的方式。
答案 1 :(得分:22)
在这两个选项之间(感谢@Kooilnc的例子):
Number.prototype.abs = function(){
return Math.abs(this);
};
和
var negative = -23,
positive = -negative>0 ? -negative : negative;
选择第二个(否定)。它不需要函数调用,CPU可以用很少的指令来完成。快速,简单,高效。
答案 2 :(得分:13)
if (myvar < 0) {
myvar = -myvar;
}
或
myvar = Math.abs(myvar);
答案 3 :(得分:2)
或者,如果你想避免函数调用(和分支),你可以使用这段代码:
x = (x ^ (x >> 31)) - (x >> 31);
它有点“hackish”,它看起来很奇怪:)但我仍然会坚持使用Math.abs
(只是想表明这样做的另一种方式)
答案 4 :(得分:1)
这不是jQuery实现,而是使用Javascript中的Math库
x = Math.abs(x);
答案 5 :(得分:0)
如果您不想使用Math.Abs,您可以使用以下简单语句:P
if (x < 0) {
x = -x;
}
当然你可以把它变成这样的功能
function makePositive(number) {
if (number < 0) {
number = -number;
}
}
makepositive(-3)=&gt; 3 makepositive(5)=&gt; 5
希望这有帮助! Math.abs可能会对你有用,但如果不是这样的话