簡體   English   中英

JavaScript 中的正數到負數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM