JavaScript Dizi Sıralama

sort() Bu yöntem en güçlü dizi yöntemlerinden biridir.

Dizi sıralama

sort() Dizileri harf sırasına göre sıralamak için yöntem:

Örnek

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();            // fruits içindeki elemanları sırala

Kendi Kendine Deneyin

Diziyi tersine çevir

reverse() Elemanları dizide tersine çevirir.

Aşağıdaki şekilde diziyi tersten sıralamak için kullanabilirsiniz:

Örnek

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();            // fruits içindeki elemanları sırala
fruits.reverse();         // Eleman sırasını tersine çevir

Kendi Kendine Deneyin

Sayısal Sıralama

Öntanımlı olarak,sort() Fonksiyon:StringDeğerleri sıralamak için sıralama

Sıralama

Bu fonksiyon stringler için çok uyguntur ("Apple", "Banana" öncesi "Banana").

Ancak, sayılar string olarak sıralandığında, "25" "100" den büyük çünkü "2" "1" den büyüktür.sort() Bu nedenle,

Bu yöntem, sayısal sıralamada yanlış sonuçlar üretebilir.Oran fonksiyonuBu sorunu düzeltmek için:

Örnek

Azalan sıralama:
Artan sıralama: 

Kendi Kendine Deneyin

Aynı teknikle diziyi tersten sıralamak için kullanın:

Örnek

Azalan sıralama:
var points = [40, 100, 1, 5, 25, 10]; 

Kendi Kendine Deneyin

Oran fonksiyonu

Karşılaştırma fonksiyonunun amacı, farklı bir sıralama sırası tanımlamaktır.

Karşılaştırma fonksiyonu, parametrelere bağlı olarak negatif, sıfır veya pozitif bir değer dönmelidir:

function(a, b){return a-b}

sort() Bu fonksiyon iki değeri karşılaştırırken, bu değerleri karşılaştırma fonksiyonuna gönderir ve döndürülen değere göre bu değerleri sıralar.

Örnek:

40 ve 100 karşılaştırılırken:sort() Bu yöntem, function(40,100) gibi bir karşılaştırma fonksiyonu çağırır.

Bu fonksiyon 40-100'ü hesaplar ve -60 (negatif değer) döner.

Sıralama fonksiyonu 40'ı 100'den daha düşük bir değere sıralayacaktır.

Aşağıdaki kod parçasını değer ve harf sıralaması için test etmek için kullanabilirsiniz:

<button onclick="myFunction1()">Harf Sıralaması ile Düzenle</button>
<button onclick="myFunction2()">Sıralama Numaralı Düzenle</button>
<p id="demo"></p>
<script>
Azalan sıralama:
document.getElementById("demo").innerHTML = points;
function myFunction1() {
		points.sort();
		document.getElementById("demo").innerHTML  = points;
}
function myFunction2() {
		points.sort(function(a, b){return a - b});
		document.getElementById("demo").innerHTML = points;
}
</script>

Kendi Kendine Deneyin

以随机顺序排序数组

Örnek

Azalan sıralama:
Diziyi rastgele sıralama 

Kendi Kendine Deneyin

points.sort(function(a, b){return 0.5 - Math.random()});

En yüksek (veya en düşük) dizideki değerleri bulma

JavaScript, dizideki en büyük veya en küçük değerleri bulmak için yerleşik fonksiyon sağlamaz.

Ancak, diziyi sıraladıktan sonra, en yüksek veya en düşük değeri almak için indeksleri kullanabilirsiniz.

Örnek

Azalan sıralama:
Artan sıralama:
points.sort(function(a, b){return a - b});
// Şimdi points[0] en düşük değeri içerir

Kendi Kendine Deneyin

// points[points.length-1] en yüksek değeri içerir

Örnek

Azalan sıralama:
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});
// Şimdi points[0] en yüksek değeri içerir

Kendi Kendine Deneyin

// points[points.length-1] en düşük değeri içerir

Eğer sadece en yüksek veya en düşük değeri bulmak istiyorsanız, tüm diziyi sıralamak verimsiz bir yöntemdir.

Math.min() kullanarak diziyi kullanabilirsiniz Math.max() kullanarak diziyi kullanabilirsiniz Math.max.apply

Örnek

function myArrayMax(arr) {
    dizideki en yüksek değeri bulmak için:
}

Kendi Kendine Deneyin

return Math.max.apply(null, arr); eşittir Math.max.apply([1, 2, 3]).

Math.max(1, 2, 3)

Math.min() kullanarak diziyi kullanabilirsiniz Math.min.apply dizideki en düşük değeri bulmak için:

Örnek

function myArrayMin(arr) {
    return Math.min.apply(null, arr);
}

Kendi Kendine Deneyin

Math.min.apply([1, 2, 3]) eşittir Math.min(1, 2, 3).

Min / Max JavaScript yöntemlerim

En hızlı çözüm yöntemi 'öz yapımı' yöntemidir.

Bu fonksiyon diziyi tarar ve bulduğunuz en yüksek değeri her değere karşılaştırır:

örnek (Max bulma)

function myArrayMax(arr) {
    var len = arr.length
    var max = -Infinity;
    while (len--) {
        if (arr[len] > max) {
            max = arr[len];
        }
    }
    return max;
}

Kendi Kendine Deneyin

Bu fonksiyon diziyi tarar ve bulduğunuz en düşük değeri her değere karşılaştırır:

örnek (Min bulma)

function myArrayMin(arr) {
    var len = arr.length
    var min = Infinity;
    while (len--) {
        if (arr[len] < min) {
            min = arr[len];
        }
    }
    return min;
}

Kendi Kendine Deneyin

Nesne dizisini sıralama

JavaScript dizileri sık sık nesneleri içerir:

Örnek

var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}];

Nesneler farklı veri türleri olan özelliklere sahip olsa bilesort() Bu yöntem, dizileri sıralamak için hala kullanılabilir.

Çözüm, özellik değerlerini karşılaştırmak için bir karşılaştırma fonksiyonu kullanmaktır:

Örnek

cars.sort(function(a, b){return a.year - b.year});

Kendi Kendine Deneyin

Dizgi özelliklerini karşılaştırmak biraz daha karmaşıktır:

Örnek

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

Kendi Kendine Deneyin