Saya mencoba membandingkan 2 string menurut abjad untuk tujuan penyortiran. Misalnya saya ingin memiliki cek boolean seperti if('aaaa' < 'ab')
. Saya mencobanya, tetapi tidak memberikan hasil yang benar, jadi saya rasa itu bukan sintaks yang tepat. Bagaimana saya melakukan ini di jquery atau Javascript?
javascript
jquery
sebaya
sumber
sumber
'aaaa' < 'ab'
kembalitrue
. <! - edit salah untuk menghapus suara ->Jawaban:
Mari kita lihat beberapa kasus pengujian - coba jalankan ekspresi berikut di konsol JS Anda:
Semua kembali benar.
JavaScript membandingkan string karakter demi karakter dan "a" muncul sebelum "b" dalam alfabet - karenanya kurang dari.
Dalam kasus Anda, ini berfungsi seperti itu -
membandingkan dua karakter "a" pertama - semuanya sama, mari pindah ke karakter berikutnya.
membandingkan karakter kedua "a" melawan "b" - teriakan! "a" datang sebelum "b". Mengembalikan nilai true.
sumber
"a" < "b" === true
"a" < "B" === false
.Anda mengatakan bahwa perbandingan itu untuk tujuan penyortiran. Maka saya menyarankan sebagai gantinya:
Ia kembali
-1
sejak"a" < "b"
,1
atau0
sebaliknya, seperti yang Anda butuhkan untuk Array.prototype.sort ()Perlu diingat bahwa pengurutan bergantung pada lokal. Misalnya dalam bahasa Jerman,
ä
adalah varian daria
, jadi"ä".localeCompare("b", "de-DE")
kembali-1
. Dalam bahasa Swedia,ä
adalah salah satu huruf terakhir dalam alfabet, sehingga"ä".localeCompare("b", "se-SE")
menghasilkan1
.Tanpa parameter kedua ke
localeCompare
, lokal browser digunakan. Yang menurut pengalaman saya tidak pernah saya inginkan, karena itu akan diurutkan secara berbeda dari server, yang memiliki lokasi tetap untuk semua pengguna.sumber
"aa".localeCompare("ab")
== "aa" .localeCompare ("Ab") untuk lokal mana pun yang dapat saya pikirkan) dan bekerja bahkan di versi lama IE. Seharusnya jawaban yang diterima!Ingatlah bahwa perbandingan string seperti "x"> "X" peka huruf besar / kecil
Anda dapat menggunakan
.toLowerCase()
untuk membandingkan tanpa sensitivitas huruf besar / kecil.sumber
"a".localeCompare("b")
harus benar-benar kembali-1
sejaka
macam sebelumnyab
http://www.w3schools.com/jsref/jsref_localecompare.asp
sumber
Katakanlah kita memiliki array objek:
maka kita bisa mengurutkan array kita sebagai berikut:
Catatan: Hati-hati untuk huruf besar, Anda mungkin perlu mengubah string Anda menjadi huruf kecil karena tujuan Anda.
sumber