Pada dasarnya, perut bagian belakang. Jika saya memiliki:
if ($this.find('.pdxslide-activeSlide').index() < slideNum - 1) {
slideNum = -slideNum
}
console.log(slideNum)
Tidak peduli konsol apa selalu mengembalikan angka positif. Bagaimana cara mengatasinya?
Jika aku melakukan:
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')
}
itu bekerja, tetapi tidak "KERING" dan hanya bodoh memiliki seluruh blok kode HANYA untuk a -
.
javascript
jquery
math
Oscar Godson
sumber
sumber
Jawaban:
Namun, Anda menyadari itu untuk kode Anda
Jika index yang ditemukan adalah 3 dan slideNum adalah 3,
maka 3 <3-1 => false
sehingga slideNum tetap positif ??
Bagi saya ini lebih seperti kesalahan logika.
sumber
Kebalikan dari abs adalah
Math.abs(num) * -1
.sumber
return -Math.abs(num);
Rumus dasar untuk membalik positif ke negatif atau negatif ke positif:
sumber
i * -1
? Juga, saya tidak yakin ini menjawab pertanyaan sebenarnya.i * -1
tampaknya tidak berfungsi pada versi chrome saat ini. Gunakan -Math.abs (1) tidak yakin mengapa ini berhasil, semoga seseorang dapat memperluas alasannya.i * -1
akan selalu berfungsi. saya tidak tahu bagaimana Anda mencoba, mungkin Anda salah ketik. Tapi ... apa salahnyai = -i
daripadai = i * -1
(ataui *= -1
) membalikkan positif ke negatif atau negatif ke positif?Untuk mendapatkan versi negatif dari angka di JavaScript, Anda selalu dapat menggunakan
~
operator bitwise.Misalnya, jika Anda sudah
a = 1000
dan ingin mengubahnya menjadi negatif, Anda dapat melakukan hal berikut:Yang akan menghasilkan
a
keberadaan-1000
.sumber
a = -a
?~1000
adalah-1001
, tidak-1000
.sumber
Apakah Anda yakin bahwa kendali masuk ke dalam tubuh
if
? Seperti apakah kondisi iniif
pernah benar? Karena jika tidak, tubuhif
wasiat tidak akan pernah dieksekusi danslideNum
akan tetap positif. Saya berani menebak bahwa ini mungkin yang Anda lihat.Jika saya mencoba yang berikut ini di Firebug, tampaknya berhasil:
slideNum *= -1
juga harus bekerja. Seperti seharusnyaMath.abs(slideNum) * -1
.sumber
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum *= -1 }
dan saya masih kembali positif di console.log itu?$this.find('.pdxslide-activeSlide').index() < slideNum-1
selalu salah.Jika Anda tidak ingin menggunakan Math.Abs * -1 Anda dapat menggunakan pernyataan if sederhana ini: P
Tentu saja Anda bisa membuat fungsi seperti ini
makeNegative (-3) => -3 makeNegative (5) => -5
Semoga ini membantu! Math.abs kemungkinan akan bekerja untuk Anda tetapi jika tidak sekecil ini
sumber
Hasil:
-10
Hasil:
10
Jika Anda membagi dengan negatif 1, bilangan Anda akan selalu terbalik.
sumber
Javascript memiliki operator khusus untuk ini: negasi unary .
TL; DR: Itu tanda minus!
Untuk meniadakan angka, cukup awali dengan dengan
-
cara yang paling intuitif. Tidak perlu menulis fungsi, gunakanMath.abs()
perkalian dengan-1
atau gunakan operator bitwise.Negasi unary bekerja pada literal bilangan:
Ia bekerja dengan variabel juga:
Anda bahkan dapat menggunakannya beberapa kali jika Anda menggunakan operator pengelompokan (alias tanda kurung:
Semua hal di atas bekerja dengan variabel juga.
sumber
Ini akan melakukannya untuk Anda.
sumber
Gunakan 0 - x
x menjadi angka yang ingin Anda balikkan
sumber
-x
mencukupi.Ini akan mengubah array negatif menjadi positif atau sebaliknya
sumber
Dalam vanilla javascript
Dimana nomor atas adalah angka positif yang ingin Anda konversi
Kode ini hanya akan mengubah bilangan positif menjadi bilangan negatif dengan mengalikannya dengan -1
sumber