[英]Positive Number to Negative Number in JavaScript?
基本上,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')
}
它確實有效,但它不是“干”的,只是愚蠢地為一個-
擁有一整段代碼。
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 < 3-1 => 假
所以 slideNum仍然是積極的??
對我來說,它看起來更像是一個邏輯錯誤。
abs 的反面是Math.abs(num) * -1
。
將正轉負或轉負轉正的基本公式:
i - (i * 2)
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)
以上所有內容也適用於變量。
要在 JavaScript 中獲取數字的負數版本,您始終可以使用~
按位運算符。
例如,如果您有a = 1000
並且需要將其轉換為負數,則可以執行以下操作:
a = ~a + 1;
這a
導致-1000
。
var x = 100;
var negX = ( -x ); // => -100
num * -1
這會為你做。
您確定控件進入了if
的主體嗎? 至於if
中的條件是否成立? 因為如果不這樣做,則if
的主體將永遠不會執行,並且slideNum
將保持為正。 我會冒險猜測這可能就是您所看到的。
如果我在 Firebug 中嘗試以下操作,它似乎有效:
>>> i = 5; console.log(i); i = -i; console.log(i);
5
-5
slideNum *= -1
也應該有效。 正如Math.abs(slideNum) * -1
。
如果你不想使用 Math.Abs * -1 你可以使用這個簡單的 if 語句:P
if (x > 0) {
x = -x;
}
當然你可以把它變成這樣的功能
function makeNegative(number) {
if (number > 0) {
number = -number;
}
}
makeNegative(-3) => -3 makeNegative(5) => -5
希望這可以幫助。 Math.abs 可能會為你工作,但如果它不這么小
var i = 10;
i = i / -1;
結果: -10
var i = -10;
i = i / -1;
結果: 10
如果你除以負 1,它總是會翻轉你的數字。
使用 0 - x
x 是您要反轉的數字
它將負數組轉換為正數組,反之亦然
function negateOrPositive(arr) {
arr.map(res => -res)
};
在香草javascript中
if(number > 0) return -1*number;
其中上面的數字是您要轉換的正數
此代碼只需乘以 -1 即可將正數轉換為負數
我認為最好的答案是 Diego ZoracKy,為什么不是 a = -a ? . 是的,為什么不呢🤣😂
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.