HTML CSS JAVASCRIPT ANGULAR

JavaScript Dizi Sıralama


Bir Diziyi Sıralamak

 sort() metodu, bir diziyi alfabetik olarak sıralar:

Örnek

var meyveler = ["Muz", "Portakal", "Elma", "Mango"];
meyveler.sort();        // meyveler dizisinin elemanlarını alfabetik olarak sıralar

Kendin Dene »


Bir Diziyi Tersine Sıralamak

reverse() metodu, bir diziyi tersine doğru sıralar.

Bu metodu, dizi elemanlarını alfabetik olarak tersine sıralamak istediğinizde kullanabilirsiniz:

Örnek

var meyveler = ["Muz", "Portakal", "Elma", "Mango"];
meyveler.sort();        // önce alfabetik olarak sırala
meyveler.reverse();     // sonra tersine sırala

Kendin Dene »


Numaraya Göre Sıralamak

Standart olarak, sort() metodu string değerleri sıralar.

String yani yazılı değerler için çalışır: Mesela Ali alfabetik olarak Veli'den önce gelir.

Ancak, sayısal değerler için bu durum geçerli değildir. Çünkü sort metoduna göre, 40 sayısı 123 sayısından büyüktür, çünkü ilk rakam olan 4, 1'den daha büyüktür.

Bu yüzden, sort() metodu sayılarla kullanıldığında yanlış sonuçlar verecektir.

Bunu da bir karşılaştırma fonksiyonu yazarak çözebilirsiniz:

Örnek

var sayilar = [25, 9, 12, 33, 87, 1, 42];
sayilar.sort(function(a, b){return a - b});  

Kendin Dene »

Aynı fonksiyonu, sayıları büyükten küçüğe sıralamak için de kullanabilirsiniz:

Örnek

var sayilar = [25, 9, 12, 33, 87, 1, 42];
sayilar.sort(function(a, b){return b - a}); 

Kendin Dene »


Karşılaştırma Fonksiyonu

Bu fonksiyonun amacı, farklı bir şekilde sıralama imkanı belirlemektir.

Karşılaştırma fonksiyonu, verilen değerlere bağlı olarak negatif, 0 ya da pozitif bir değer döndürmelidir.

Eğer fonksiyondan dönen değer negatifse, a değeri b değerinden önce sıralanır.

Eğer fonksiyondan dönen değer pozitifse, b değeri a değerinden önce sıralanır.

Eğer fonksiyondan dönen değer 0 ise, bir değişiklik yapılmaz.

Örneğin, 2 ve 8 değerini ele alalım. sort() metodu karşılaştırma fonksiyonunu(2, 8) çağırır. 

Daha sonra fonksiyon (2 - 8) işlemini hesaplar (a - b), sonuç negatif olduğundan (-6), sort() metodu 2 değerini 8'den küçük kabul eder ve 2 değerini önce sıralar.

Bu örnek kodda, iki türlü sıralama da bulunmaktadır:

Örnek

<button onclick="siralamaAlfabetik()">Alfabetik Sırala</button>
<button onclick="siralamaNumara()">Numara Sırala</button>

<p id="demo"></p>

<script>
var sayilar = [25, 9, 12, 33, 87, 1, 42];
document.getElementById("demo").innerHTML = sayilar;

function siralamaAlfabetik() {
  sayilar.sort();
  document.getElementById("demo").innerHTML = sayilar;
}

function siralamaNumara() {
  sayilar.sort(function(a, b){return a - b});
  document.getElementById("demo").innerHTML = sayilar;
}
</script>

Kendin Dene »


Diziyi Rasgele Sıralamak

Örnek

var sayilar = [25, 9, 12, 33, 87, 1, 42];
sayilar.sort(function(a, b){return 0.5 - Math.random()});

Kendin Dene »


Dizideki En Yüksek - En Düşük Değeri Bulmak

JavaScript'te en yüksek ve en düşük değeri bulmak için hazır bir fonksiyon bulunmamaktadır.

Fakat diziyi küçükten büyüğe sıraladıktan sonra, index numaralarını kullanarak birinci ve sonuncu değerlere ulaşabilirsiniz.

Örnek

var sayilar = [25, 9, 12, 33, 87, 1, 42];
sayilar.sort(function(a, b){return a - b});
var enDusuk = sayilar[0];
var enYuksek = sayilar[sayilar.length-1];

Kendin Dene »

Eğer sadece en yüksek veya en düşük numarayı bulmak istiyorsanız, tüm diziyi baştan aşağı sıralamak çok veri bulunan diziler için fazladan iş yükü getiren bir işlem olabilir.

Math.max() Metodunu Kullanmak

Bir dizideki en yüksek değerli elemanı bulmak için, Math.max.apply metodunu kullanabilirsiniz:

Örnek

function maxDeger(dizi) {
  return Math.max.apply(null, dizi);
}

Kendin Dene »


Math.min() Metodunu Kullanmak

Bir dizideki en düşük değerli elemanı bulmak için, Math.min.apply metodunu kullanabilirsiniz:

Örnek

function minDeger(dizi) {
  return Math.min.apply(null, dizi);
}

Kendin Dene »


En Yüksek - En Düşük Değer Bulma Fonksiyonu

En yüksek veya en düşük değeri bulmak için en hızlı çözüm kendi fonksiyonunuzu yazmaktır.

Bu örnek fonksiyon, bulduğu en yüksek değerle dizideki diğer değerleri karşılaştırıp en yüksek değeri bulmaktadır: 

Örnek

function maxDeger(dizi) {
  var uzunluk = dizi.length;
  var max = -Infinity;
  while (uzunluk--) {
    if (dizi[uzunluk] > max) {
      max = dizi[uzunluk];
    }
  }
  return max;
}

Kendin Dene »

Bu örnek fonksiyon, bulduğu en düşük değerle dizideki diğer değerleri karşılaştırıp en düşük değeri bulmaktadır:

Örnek

function minDeger(dizi) {
  var uzunluk = dizi.length;
  var min = Infinity;
  while (uzunluk--) {
    if (dizi[uzunluk] < min) {
      min = dizi[uzunluk];
    }
  }
  return min;
}

Kendin Dene »


JavaScript Objelerini Sıralamak

JavaScript dizileri genelde objeleri saklamak için kullanılır:

Örnek

var arabalar = [
  {tur:"araba1", model:5},
  {tur:"araba2", model:12},
  {tur:"araba3", model:3}
];

Kendin Dene »

Objeler her ne kadar farklı değişken türlerini barındırsa da, yine de diziyi sıralamak için sort() metodu kullanılabilir.

Çözüm ise, obje oldukları için isimler için karşılaştırma fonksiyonu yazmaktır:

Örnek

arabalar.sort(function(a, b){return a.model - b.model});

Kendin Dene »

"model" ismindeki değişken sayısal veri tuttuğu için daha kolay fakat "tur" ismindeki değişken string değer tuttuğundan onları sıralamak biraz daha zahmetli olabilir:

Örnek

arabalar.sort(function(a, b){
    var x = a.tur.toLowerCase();
    var y = b.tur.toLowerCase();
    if (x < y) {return -1;}
    if (x > y) {return 1;}
    return 0;
  });

Kendin Dene »

 

 

 

 

 

 


Anlamadığınız bir konu mu var?

Konu ile ilgili sorunuzu uzmanim.net'e sorabilirsiniz: uzmanim.net'e sor!