JavaScript Dizi Sıralama
- Önceki Sayfa JS Dizi Arama
- Sonraki Sayfa JS Dizi Tercihleri
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
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
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:
Aynı teknikle diziyi tersten sıralamak için kullanın:
Örnek
Azalan sıralama: var points = [40, 100, 1, 5, 25, 10];
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>
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
// 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
// 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: }
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); }
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; }
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; }
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});
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; });
- Önceki Sayfa JS Dizi Arama
- Sonraki Sayfa JS Dizi Tercihleri