Osc*_*son 80 javascript math jquery
基本上,abs的反向.如果我有:
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)
Run Code Online (Sandbox Code Playgroud)
无论什么控制台总是返回正数.我该如何解决?
如果我做:
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')
}
Run Code Online (Sandbox Code Playgroud)
它可以工作,但它不是"干"而只是愚蠢的整个代码块只是为了一个 -
Ric*_*iwi 167
Math.abs(num) => Always positive
-Math.abs(num) => Always negative
Run Code Online (Sandbox Code Playgroud)
但是,您确实意识到,对于您的代码而言
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)
Run Code Online (Sandbox Code Playgroud)
如果找到的索引是3并且slideNum是3,
那么3 <3-1 => false
所以slideNum 保持正值?
它看起来更像是一个逻辑错误.
Jak*_*mpl 74
abs的反面是Math.abs(num) * -1
.
小智 25
将正面反转为负面或负面反转为正面的基本公式:
i - (i * 2)
Run Code Online (Sandbox Code Playgroud)
要在JavaScript中获得数字的负数版本,您始终可以使用~
按位运算符.
例如,如果您有a = 1000
并且需要将其转换为否定值,则可以执行以下操作:
a = ~a + 1;
这将导致a
-1000.
你确定控制进入了身体if
吗?if
一如既往的条件是否正确?因为如果不这样做,那么遗体if
将永远不会被执行并slideNum
保持积极态度.我打算猜测这可能就是你所看到的.
如果我在Firebug中尝试以下操作,它似乎工作:
>>> i = 5; console.log(i); i = -i; console.log(i);
5
-5
Run Code Online (Sandbox Code Playgroud)
slideNum *= -1
也应该工作.应该如此Math.abs(slideNum) * -1
.
如果您不想使用 Math.Abs * -1,您可以使用这个简单的 if 语句:P
if (x > 0) {
x = -x;
}
Run Code Online (Sandbox Code Playgroud)
当然你可以把它变成这样的功能
function makeNegative(number) {
if (number > 0) {
number = -number;
}
}
Run Code Online (Sandbox Code Playgroud)
makeNegative(-3) => -3 makeNegative(5) => -5
希望这可以帮助!Math.abs 可能会为你工作,但如果它不是那么一点点
var x = 100;
var negX = ( -x ); // => -100
Run Code Online (Sandbox Code Playgroud)
Javascript 有一个专门的操作符:一元否定。
TL;DR:这是减号!
要否定一个数字,只需-
以最直观的方式为其添加前缀。无需编写函数,使用Math.abs()
乘法-1
或使用按位运算符。
一元否定适用于数字文字:
let a = 10; // a is `10`
let b = -10; // b is `-10`
Run Code Online (Sandbox Code Playgroud)
它也适用于变量:
let x = 50;
x = -x; // x is now `-50`
let y = -6;
y = -y; // y is now `6`
Run Code Online (Sandbox Code Playgroud)
如果您使用分组运算符(又名括号),您甚至可以多次使用它:
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)
Run Code Online (Sandbox Code Playgroud)
以上所有内容也适用于变量。
归档时间: |
|
查看次数: |
182116 次 |
最近记录: |