JavaScript Dizi Sıralama
JavaScript sort fonksiyonu ile dizi sıralama, alfabetik sıralama, ters sıralama, sayısal sıralama, küçükten büyüğe, büyükten küçüge ve Türkçe sıralama yer alıyor.
JavaScript dizi sıralama fonksiyonu ile dizi içerisindeki sayıları büyükten küçüğe sıralama, küçükten büyüğe sıralama veya metin veri türünden değerleri alfabetik sıralamak için kullanılır.
Alfabetik sıralama
Dizi elamanlarını alfabetik olarak sıralamak için sort fonksiyonu kullanılır.
<script>
var liste = ["Elma", "Armut", "Portakal", "Muz", "Kivi", "Karpuz", "Çilek"];
liste.sort();
alert(liste);
</script>
Ters sıralama
Dizi elemanlarını tersine çevirmek için reverse fonksiyonu kullanılır.
<script>
var liste = ["Elma", "Armut", "Portakal", "Muz", "Kivi", "Karpuz", "Çilek"];
liste.reverse();
alert(liste);
</script>
Sayısal sıralama
JavaScript sort fonksiyonu dizi elamanlarını alfabetik olarak sıralar.
Sayıları sort fonksiyonu ile sıraladığımızda metin veri türü olarak sıralayacak 2 değeri 1 değerinden büyük olduğundan 25 değeri 100 değerinden büyük olacaktır.
JavaScript ile sayıları sıralamak için aşağıdaki gibi karşılaştırma fonksiyonu yazılmalıdır.
<script>
var liste = [10, 100, 250, 30, 1, 45];
liste.sort(function(a, b){return a - b});
alert(liste);
</script>
Sayıları büyükten küçüğe sıralamak için dönüş değeri hesaplamasını değiştirmemiz yeterli olacaktır.
<script>
var liste = [10, 100, 250, 30, 1, 45];
liste.sort(function(a, b){return b - a});
alert(liste);
</script>
Karşılaştırma fonksiyonu
Karşılaştırma fonksiyonun amacı sort fonksiyonunun varsayılan sıralamasına alternatif bir sıralama oluşturmaktır.
Karşılaştırma fonksiyonu değişkenlere bağlı olarak negatif, sıfır veya pozitif bir değer döndürmelidir.
function(a, b){return a - b};
JavaScript sort fonksiyonu karşılaştırmak üzere iki değeri karşılaştırma fonksiyonuna gönderir ve karşılaştırma sonucunda negatif, sıfır ve pozitif değerine göre sıralama yapar.
Örneğin; 40 ve 100 değerlerini karşılaştırırken sort fonksiyonu karşılaştırma fonksiyonunu çalıştırır.
Karşılaştırma fonksiyonu 40-100 hesaplar ve -60 (negatif) sonucunu döndürür.
Sonuç negatif olduğu için 40’ı 100’den küçük değer olarak sıralar.
Rastgele sıralama
<script>
var liste = [10, 100, 250, 30, 1, 45];
liste.sort(function(a, b){return 0.5 - Math.random()});
alert(liste);
</script>
En büyük sayıyı bulma
Dizideki en büyük değeri bulmak için diziyi büyükten küçüğe sıraladıktan sonra ilk elemanı almak yeterli olacaktır.
<script>
var liste = [10, 100, 250, 30, 1, 45];
liste.sort(function(a, b){return b - a});
alert(liste[0]);
</script>
En küçük sayıyı bulma
Dizideki en küçük değeri bulmak için diziyi küçükten büyüğe sıraladıktan sonra ilk elemanı almak yeterli olacaktır.
<script>
var liste = [10, 100, 250, 30, 1, 45];
liste.sort(function(a, b){return a - b});
alert(liste[0]);
</script>
Dizi nesnelerini sıralama
JavaScript dizi nesnelerini sıralamak için nesne özelliğine özel karşılaştırma fonksiyonu yazılması gerekir.
<script>
var liste, i, listeUzunluk, metin="";
liste = [
{ad:"Elma", gram:750},
{ad:"Armut", gram:1000},
{ad:"Portakal", gram:800},
{ad:"Muz", gram:1500},
{ad:"Kivi", gram:350},
{ad:"Karpuz", gram:500},
{ad:"Çilek", gram:450}];
listeUzunluk = liste.length;
for(i = 0; i < listeUzunluk; i++) metin += liste[i].ad + " - " + liste[i].gram +" \n";
alert(metin);
liste.sort(function(a, b){return a.gram - b.gram});
metin = "";
for(i = 0; i < listeUzunluk; i++) metin += liste[i].ad + " - " + liste[i].gram +" \n";
alert(metin);
</script>
JavaScript Türkçe sıralama
JavaScript ASCII karakterleri dışındaki karakterleri sıralamaz.
JavaScript ile Türkçe sıralama yapmak için localeCompare fonksiyonu kullanılır.
<script>
var liste = ["Elma", "Armut", "Portakal", "Muz", "Kivi", "Karpuz", "Çilek"];
liste.sort(function(a, b){return a.localeCompare(b)});
alert(liste);
</script>
JavaScript Derslerine buradan ulaşabilirsiniz…
Hayırlı günler dilerim.