Положительное число до отрицательного числа в JavaScript?
В принципе, обратная сторона абс. Если у меня есть:
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')
}
он работает, но он не "СУХОЙ" и просто глуп, чтобы иметь весь блок кода JUST для -
Ответы
Ответ 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
Реверс абс равен Math.abs(num) * -1
.
Ответ 3
Основная формула для положительного отрицательного или отрицательного отношения к положительному:
i - (i * 2)
Ответ 4
Вы уверены, что элемент управления находится в теле if
? Как и в случае с условием в if
? Потому что, если это не так, тело if
никогда не будет выполнено, а slideNum
останется положительным. Я собираюсь опасаться, что это, вероятно, то, что вы видите.
Если я попробую следующее в Firebug, оно работает:
>>> i = 5; console.log(i); i = -i; console.log(i);
5
-5
slideNum *= -1
также должен работать. Как и Math.abs(slideNum) * -1
.
Ответ 5
Чтобы получить отрицательную версию числа в JavaScript, вы всегда можете использовать побитовый оператор ~
.
Например, если у вас есть a = 1000
, и вам нужно преобразовать его в отрицательный, вы можете сделать следующее:
a = ~a + 1;
что приведет к тому, что a
будет -1000.
Ответ 6
Если вам не нравится использовать 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, скорее всего, сработает для вас, но если это не так мало
Ответ 7
Используйте 0 - x
x - число, которое вы хотите инвертировать