javascript

JavaScript sort() metodu ve Sıralamalarda Türkçe Karakter Sorunu

Merhabalar, özel karakterler programlama dillerinde ve veri tabanlarında her daim sorun çıkartmışlardır. Özellikle sıralamalarda sort fonksiyonlarını çalıştırırken ş ğ ü ı ç harfleri sıralamanın en altlarında yer almakta olup; inanılmaz can sıkarlar. Örnek olarak ç harfi u harfinden sonra görüntülenir halbuki c harfinden sonra gelmesi gerekir.

Bilmelisiniz ki JavaScript değerleri sıralarken onları string olarak kabul eder ve Unicode sırasına göre azalan sırada sıralar varsayılan olarak. Yani numara dahi yazsanı onu bir string olarak görür. Nümerik ifade bile koyarsanız yani 36 102 şeklinde burada sıralama tamamen string şeklinde gerçekleşir. ve 36 > 102 şeklinde sıralanır. Çünkü 3 stringi 1 stringinden.

Bu string karmaşasının içinden çıkabilmek adına; çok basit bir fonksiyon yazabiliriz.

Şeklinde bir fonksiyon oluşturup sort() metoduna parametre olarak verdiğimizde ise; alacağımız sonuç gayet normal seviyelere inmekte. Ancak hala yetersiz olmakta burada da localeCompare metodu gerekmekte.

şeklinde yazdığımızda ise tamamen rahatlığa kavuşmaktayız. He bazen bunlar çalışmıyorsa işin daha da cinliğine kaçıp karakterleri arkaplanda sıralama işleminden önce karakterleri replace edebilir sonrasında sort metoduna ekleyebiliriz

 

Erel Çolak

Front-End Developer olarak kendimi geliştiriyorum, HTML5, CSS3, JQuery, Bootstrap Gibi bir çok dille ilgilenmekteyim. WordPress, vBulletin, OpenCart, Moodle ve diğer CMS' ler konusunda aşırı bilgi sahibiyim ve de bu bilgileri elimden geldiğince paylaşıyorum. Trakya Üniversitesi Bilgisayar Öğretmenliği Bölümünü okudum. Şimdilerde özel bir şirkette UI/UX Designer & Front-end developer olarak çalışmaktayım.

You may also like...

Bir Cevap Yazın