Dalam JavaScript, saya memberi tahu browser untuk melakukan sesuatu jika ukuran jendela lebih besar dari 500px. Saya melakukannya seperti ini:
if (windowsize > 500) {
// do this
}
Ini bekerja dengan baik, tetapi saya ingin menerapkan metode yang sama, tetapi dengan sejumlah angka. Jadi saya ingin memberi tahu browser saya untuk melakukan hal-hal jika ukuran jendela antara 500px dan 600px. Saya tahu ini tidak akan berhasil, tapi inilah yang saya bayangkan:
if (windowsize > 500-600) {
// do this
}
Apakah ini mungkin, dalam JavaScript?
javascript
Dyck
sumber
sumber
Jawaban:
Menguji apakah
windowsize
lebih besar500
dan lebih kecil dari600
arti bahwa tidak ada nilai500
atau600
dirinya sendiri yang akan menghasilkan kondisi menjadi kenyataan.sumber
windowsize
setidaknya 501px dan paling banyak 599px. 500px dan 600px tidak termasuk. Tambahkan persamaan untuk perbandingan jika Anda ingin memasukkan nilai-nilai ini.if(500 < windowsize && windowsize < 600)
Saya punya waktu, jadi, meskipun Anda sudah menerima jawaban, saya pikir saya akan berkontribusi sebagai berikut:
Demo JS Fiddle .
Atau, jika Anda lebih suka memiliki opsi untuk memeriksa nomor dalam kisaran yang ditentukan termasuk titik akhir :
Demo JS Fiddle .
Diedit untuk menambahkan amandemen kecil ke atas, mengingat bahwa - sebagaimana tercantum dalam komentar -
itu layak menghapus penggunaan
Function.prototype.apply()
, yang menghasilkan versi yang diubah dari metode di atas, pertama tanpa opsi 'inklusif':Demo JS Fiddle .
Dan dengan opsi 'inklusif':
Demo JS Fiddle .
Referensi:
Function.prototype.apply()
.Math.max()
.Math.min()
.sumber
Main.min(a,b)
? Function.prototype.apply lambat! Selain itu menyebutnya ketika Anda memiliki jumlah argumen tetap tidak ada gunanya.Function.prototype.apply()
, tetapi saya tidak dapat memikirkan apa itu, atau mungkin sudah.Number
objek. Ini adalah anti-pola dan akan datang dan menggigit Anda jika standar ECMA berubah untuk memasukkanNumber.between()
fungsi, atau jika pustaka lain atau bagian kodeNumber.prototype.between
lain mendefinisikan di tempat lain dengan definisi yang berbeda. Sebaliknya, buatlah fungsi pembantu dan gunakan itu!Saya lebih suka meletakkan variabel di bagian dalam untuk memberikan petunjuk tambahan bahwa kode memvalidasi variabel saya antara nilai rentang
sumber
min < testval < max
sintaks pythonIni pertanyaan lama, namun mungkin bermanfaat bagi orang seperti saya.
lodash
memiliki_.inRange()
fungsi https://lodash.com/docs/4.17.4#inRangeContoh:
Harap dicatat bahwa metode ini menggunakan
Lodash
perpustakaan utilitas, dan memerlukan akses ke versi Lodash yang diinstal.sumber
_.inRange(10, 0, 10) // => false
Javascript
, perlu dicatat bahwa metode ini menggunakanLodash
pustaka utilitas, dan membutuhkan akses ke versi Lodash yang diinstal.Anda dapat menggunakan beberapa klausa dalam
if
kondisi alih-alih menuliskarena ini benar-benar tidak masuk akal JavaScript akan membaca kondisi if Anda suka
karena menghitung
500-600
untuk-100
Anda harus menggunakan
&&
untuk memeriksa kedua kasus secara ketat misalnya yang akan terlihat seperti inisumber
Saya baru saja mengimplementasikan sedikit jQuery ini untuk menunjukkan dan menyembunyikan nilai-nilai modal bootstrap. Bidang yang berbeda ditampilkan berdasarkan rentang nilai entri kotak teks pengguna.
sumber
$().val()
tidak relevan dan tidak perlu. Tetapi sekali lagi, dalam versi asli pertanyaan, OP menyebutkan jQuery, untuk pemeriksaan aritmatika sederhana. (Menghela napas) Itu kesalahan pertama.Berikut adalah metode sesingkat mungkin:
Parametrized:
Anda dapat membagi kedua sisi dengan 2 jika Anda tidak mengerti bagaimana yang pertama bekerja;)
sumber