JavaScript 中的正数到负数?

2022-08-30 04:22:18

基本上,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')
}

它的工作原理是,但它不是“干”的,只是愚蠢的,有一个完整的代码块只是为了一个.-


答案 1
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 => false
,所以 slideNum 保持为正??

对我来说,这更像是一个逻辑错误。


答案 2

abs 的反面是 。Math.abs(num) * -1