기본적으로 복근의 반대입니다. 만약 내가 가지고 있다면:
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')
}
그것은 작동하지만 “DRY”가 아니고 단지 -
.
답변
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 은 양수로 유지됩니다 .
나에게는 논리 오류처럼 보입니다.
답변
복근의 반대는 Math.abs(num) * -1
.
답변
양수를 음수로 또는 음수를 양수로 반전하는 기본 공식 :
i - (i * 2)
답변
JavaScript에서 음수 버전을 얻으려면 항상 다음을 사용할 수 있습니다. ~
비트 연산자를 .
예를 들어, a = 1000
네거티브로 변환해야하는 경우 다음을 수행 할 수 있습니다.
a = ~a + 1;
결과적 a
으로 -1000
.
답변
var x = 100;
var negX = ( -x ); // => -100
답변
제어가의 본문에 들어가는 것이 확실 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는 아마도 당신을 위해 일할 것입니다.