Merhaba, bu yazıda sizlere JavaScript’te bulunan localeCompare() metotundan bahsedeceğim. Öncelikle neden ihtiyaç duyup kullandım;
Bir objemi isme göre sıralamak istedim. Bu obje içerisinde türkçe karakterlerde vardı ve sıralama düzgün şekilde gerçekleşmiyordu. Hemen bir örnek verelim;
var data = [ { 'id': 1, 'name': 'İstanbul' }, { 'id': 2, 'name': 'Çanakkale' }, { 'id': 4, 'name': 'Ümraniye' }, { 'id': 3, 'name': 'Ankara' }, { 'id': 5, 'name': 'Van' } ]; data = data.sort(function(a,b){ if(a.name < b.name) return -1; if(a.name > b.name) return 1; return 0; }); data.forEach(function(key){ var node = document.createElement("LI"), textnode = document.createTextNode(key.name); node.appendChild(textnode); document.getElementById('test').appendChild(node); });
Bu kodların çıktısı şu şekilde oluyordu;
Yukarıdaki kodlarımda, sort fonksiyonu içerisindeki kodumu şu şekilde değiştirirsem;
return a.name.localeCompare(b.name);
O zaman sorunumuz çözülüyor ve aşağıdaki gibi başarılı bir sıralama oluşuyor ????
Artık birgün bir yerde işinize yararsa ne ala, benim bugün ihtiyacım oldu yarında sizin olabilir ????