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 ????