JavaScript Array sort() Method - Dizi Sıralama
JavaScript sort()
methodu , bir diziyi, öğelerini dizelere dönüştürerek ve bu dizeleri Unicode kod karakterleri sırasına göre karşılaştırarak (diziyi alfabetik olarak sıralar) sıralamanıza olanak tanır.
Sort()
methodu yeni bir Array nesnesi oluşturmadığı , ancak iletilen diziyi sıraladığı gerçeğine hatırlatmak istiyorum.
Sözdizimi:
// Diziyi alfabetik olarak sıralar (Unicode kod karakterleri sırasına göre) array.sort(); // Karşılaştırma işlevini kullanarak sıralar array.sort( function( firstValue, secondValue ) );
function( a, b ) : İsteğe bağlı. Alternatif bir sıralama düzenini tanımlayan bir fonksiyon. Bu Fonksiyon, aşağıdaki gibi bağımsız değişkenlere bağlı olarak negatif, sıfır veya pozitif bir değer döndürmelidir:
- function (a, b) {return a-b}
Sort()
methodu iki değeri karşılaştırdığında, değerleri karşılaştırma fonksiyonuna gönderir ve döndürülen (negatif, sıfır, pozitif) değere göre sıralar.
ÖRNEK:
50 ile 100'ü karşılaştırırken sort()
methodu karşılaştırma fonksiyonu değerleri(50,100) çağırır.
Fonksiyon, 50-100'ü hesaplar ve -50 (negatif bir değer) döndürür.
Sort()
methodu 50'i 100'den küçük bir değer olarak sıralayacaktır.
Veri türleri (dizi, sayı vb.) Bir diziden diğerine farklılık gösterebilir. Bu, tek başına sort()
Methodu kullanmanın her zaman uygun bir çözüm olmadığı anlamına gelir.
Bu yazıda, dizeler ve sayılar için sort()
methodu kullanarak JavaScript'te bir diziyi nasıl sıralayacağınızı öğreneceksiniz.
String Dizisi
Dizelerle başlayalım:
ÖRNEK:
const Meyve = ['Portakal', 'Erik', 'Kiraz', 'Elma'];
console.log(Meyve.sort());
["Elma", "Erik", "Kiraz", "Portakal"]
Diziyi azalan sırada sıralamayı tercih ederseniz, bunun yerine reverse()
yöntemini kullanmanız gerekir:
const Meyve = ['Portakal', 'Erik', 'Kiraz', 'Elma'];
Meyve.sort();
console.log(Meyve.reverse());
//["Portakal", "Kiraz", "Erik", "Elma"]
Sayılar Dizisi
Sayıları sıralamak malesef o kadar basit değil. Sıralama yöntemini doğrudan bir sayı dizisine uygularsak, beklenmedik bir sonuç göreceğiz:
const numbers = [5, 25, 14];
console.log(numbers.sort());; // 14, 25, 5
Sort() Methodu Sayılar İçin Neden Çalışmıyor?
Aslında çalışıyor, ancak bu sorun JavaScript'in sayıları alfabetik olarak sıralaması nedeniyle ortaya çıkıyor. Bunu ayrıntılı olarak açıklayayım.
A = 1, B = 2 ve C = 3'ü düşünelim.
const Arr = ['C', 'BC', 'AB'];
console.log(Arr.sort()); // [AB, BC, C]
Örnek olarak, C (3), BC (23) ve AB (12) olarak üç dizgemiz varsa, JavaScript bunları alfabetik olarak doğru olan artan bir sırada AB, BC ve C olarak sıralayacaktır.
Ancak JavaScript, sayıları (yine alfabetik olarak) 12, 23 ve 3 olarak sıralayacaktır, bu yanlıştır.
Çözüm: Karşılaştırma Fonksiyonu
Sayısal değerleri artan veya azalan düzende sıralamak için, sıralama kriterini belirleyen bir fonksiyon kullanmamız gerekir. Aşağıdaki örneği düşünün:
function(a, b) {return a - b}
Sıralama yöntemi neyse ki negatif, sıfır ve pozitif değerleri doğru sırada sıralayabilir. Sort()
methodu iki değeri karşılaştırdığında, değerleri karşılaştırma fonksiyonuna gönderir ve döndürülen değere göre sıralar.
- Sonuç negatifse, a, b'den önce sıralanır.
- Sonuç pozitifse, b, a'dan önce sıralanır.
- Sonuç 0 ise hiçbir şey değişmez.
Tek ihtiyacımız olan sort()
methodu içindeki karşılaştırma fonksiyonu kullanmak:
const numbers = [5, 25, 14];
numbers.sort(function(a, b){return a - b});
console.log(numbers)// 5, 14, 25
Sayıları büyükten küçüğe sıralamak için bu seferde (b-a) yapılmalı.
const numbers = [5, 25, 14];
numbers.sort(function(a, b){return b - a});
console.log(numbers) //[25, 14, 5]
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ı yazdırmak yeterli olacaktır.
const numbers = [5, 25, 14, 120, 30, 50 ];
numbers.sort(function(a, b){return b - a});
console.log(numbers[0]) //120
En Küçük Sayı Bulma
const numbers = [5, 25, 14, 120, 30, 50 ];
numbers.sort(function(a, b){return a - b});
console.log(numbers[0]) //5
String Verileri Türkçe sıralama
JavaScript ile Türkçe sıralama yapmak için localeCompare
Methodu kullanılır. LocaleCompare()
methodu, geçerli yerel ayardaki iki dizeyi karşılaştırır. Yerel ayar, tarayıcının dil ayarlarına bağlıdır.
var isim = ["Ahmet", "Şengül", "Hasan", "Ömer", "Serkan", "Ülke"];
isim.sort(function(a, b){return a.localeCompare(b)});
console.log(isim);
//["Ahmet", "Hasan", "Ömer", "Serkan", "Şengül", "Ülke"]
SONUÇ:
Gördüğümüz gibi, bir dizinin öğelerini sıralamak JavaScript'te sort()
methodu kullanıyoruz, Eğer Methodu doğru kullanmayı bilirsek, kolaylıkla sıralama yapılabilir. Bu makale sort()
methodu JavaScript'te doğru şekilde nasıl kullanacağınızı anlamanıza yardımcı olur.
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MÄ°THRÄ°L FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESÄ°M ORTALAMA
- HTML RESME LÄ°NK VERME
- HTML FORM OLUÅžTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESÄ°M EKLEME
- CSS (BOYUT) GENÄ°ÅžLÄ°K VE YÃœKSEKLÄ°K (Width-Height)
- HTML DÄ°V ve SPAN NEDÄ°R?
- HTML ARKAPLANA MÃœZÄ°K EKLEME
- KALÄ°TE KAYBETMEDEN RESÄ°MLERÄ° BÃœYÃœTME