Menu
Coddy logo textTech

Sort Metodu

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 57 / 65.

sort() metodu, bir array elemanlarını yerinde sıralamanıza olanak tanır ve sıralanmış array'i return eder. Varsayılan olarak, elemanları alphabetically ve ascending order'da dize (string) olarak sort eder.

Temel sözdizimi şöyledir:

array.sort([compareFunction])

Karşılaştırma fonksiyonu (compare function) kullanılmayan örnek:

const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']

UYARI: Karşılaştırma fonksiyonu olmadan sayılar beklendiği gibi sıralanmaz:

const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (yanlış sayısal sıralama)

Sayıları doğru bir şekilde sıralamak veya özel bir sıralama uygulamak için bir karşılaştırma işlevi (compare function) kullanmanız gerekir.

Karşılaştırma işlevi şunları döndürmelidir:

  • a, b'den önce gelmeliyse negatif bir değer
  • b, a'dan önce gelmeliyse pozitif bir değer
  • Eşitlerse sıfır

Bir karşılaştırma işlevi kullanarak sayıları şu şekilde sıralayabilirsiniz:

// Artan sıra
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]
// Azalan sıra
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]

Nesnelerin nasıl sıralanacağına dair başka bir örnek:

const people = [
    { name: 'John', age: 30 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 35 }
];

// Yaşa göre sırala (artan)
people.sort((a, b) => a.age - b.age);
// İsme göre sırala (alfabetik olarak localeCompare() kullan)
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

Görev

Kolay

Dizideki metinleri uzunluklarına göre küçükten büyüğe sıralayan ve aynı uzunluktaki metinleri alfabetik olarak sıralayıp yeni bir dizi olarak döndüren sortByLength adında bir function oluşturun.

Kendin dene

function sortByLength(arr) {
    return arr.sort((a, b) => {
        // Buraya kod yazın
    })
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online JavaScript derleyicisi