Básicamente, lo contrario de los abdominales. Si tengo:
if ($this.find('.pdxslide-activeSlide').index() < slideNum - 1) {
slideNum = -slideNum
}
console.log(slideNum)
No importa qué consola siempre devuelve un número positivo. ¿Cómo puedo solucionar esto?
Si lo hago:
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')
}
aunque funciona, pero no es "DRY" y es estúpido tener un bloque completo de código SOLO para un -
.
javascript
jquery
math
Oscar Ahijado
fuente
fuente
Respuestas:
Sin embargo, se da cuenta de que para su código
Si el índice encontrado es 3 y slideNum es 3,
entonces 3 <3-1 => falso
entonces slideNum sigue siendo positivo ??
A mí me parece más un error lógico.
fuente
Lo contrario de los abdominales es
Math.abs(num) * -1
.fuente
return -Math.abs(num);
La fórmula básica para invertir de positivo a negativo o de negativo a positivo:
fuente
i * -1
? Además, no estoy seguro de que esto responda a la pregunta real.i * -1
no parece funcionar en la versión actual de Chrome. Use -Math.abs (1) aunque no estoy seguro de por qué funciona, con suerte alguien puede ampliar el por qué.i * -1
funcionará, siempre. No sé cómo lo intentaste, tal vez tuviste algún error tipográfico. Pero ... ¿qué tiene de malo eni = -i
lugar dei = i * -1
(oi *= -1
) revertir de positivo a negativo o de negativo a positivo?Para obtener una versión negativa de un número en JavaScript, siempre puede usar el
~
operador bit a bit.Por ejemplo, si lo ha hecho
a = 1000
y necesita convertirlo en negativo, puede hacer lo siguiente:Lo que resultaría en
a
ser-1000
.fuente
a = -a
?~1000
es-1001
, no-1000
.fuente
¿Estás seguro de que el control entra en el cuerpo del
if
? ¿Como en la condición en elif
siempre es cierto? Porque si no es así, el cuerpo delif
nunca se ejecutará yslideNum
seguirá siendo positivo. Voy a arriesgarme a adivinar que probablemente esto es lo que estás viendo.Si intento lo siguiente en Firebug, parece que funciona:
slideNum *= -1
también debería funcionar. Como deberíaMath.abs(slideNum) * -1
.fuente
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum *= -1 }
y todavía estoy dando positivo en ese console.log?$this.find('.pdxslide-activeSlide').index() < slideNum-1
siempre es falso.Si no tiene ganas de usar Math.Abs * -1, puede usar esta simple declaración if: P
Por supuesto, podrías hacer de esto una función como esta
makeNegative (-3) => -3 makeNegative (5) => -5
¡Espero que esto ayude! Es probable que Math.abs funcione para usted, pero si no es así, este pequeño
fuente
Resultado:
-10
Resultado:
10
Si divide por menos 1, siempre cambiará su número de cualquier manera.
fuente
Esto lo haría por usted.
fuente
Javascript tiene un operador dedicado para esto: negación unaria .
TL; DR: ¡Es el signo menos!
Para negar un número, simplemente antepóngalo
-
de la manera más intuitiva posible. No es necesario escribir una función, useMath.abs()
multiplicar por-1
o use el operador bit a bit.La negación unaria funciona en literales numéricos:
También funciona con variables:
Incluso puede usarlo varias veces si usa el operador de agrupación (también conocido como paréntesis:
Todo lo anterior también funciona con una variable.
fuente
Utilice 0 - x
siendo x el número que desea invertir
fuente
-x
suficiente.Convertirá una matriz negativa en positiva o viceversa.
fuente
En javascript vainilla
Donde el número de arriba es el número positivo que pretende convertir
Este código convertirá solo números positivos en números negativos simplemente multiplicando por -1
fuente