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.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!