Menu
CoddyTech

Sort Metodu

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

sort() yöntemi, bir dizinin öğelerini yerinde sıralamanı sağlar ve sıralanmış diziyi döndürür. Varsayılan olarak öğeleri dizeler olarak alfabetik ve artan düzende sıralar.

İşte temel sözdizimi:

array.sort([compareFunction])

Karşılaştırma işlevini kullanmadan örnek:

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

UYARI: Karşılaştırma işlevi 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] (hatalı sayısal sıralama)

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

Karşılaştırma işlevi şunu 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

Karşılaştırma işlevi kullanarak sayıları şöyle sıralayabilirsin:

// Artan sıralama
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]
// Azalan sıralama
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 sırada)
people.sort((a, b) => a.age - b.age);
// İsme göre sırala (alfabetik sıralama için localeCompare() kullan)
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

Görev

Kolay

Bir string dizisi alan ve aynı stringleri uzunluklarına göre artan sırada sıralanmış yeni bir dizi döndüren sortByLength adlı bir fonksiyon oluştur. İki string aynı uzunluktaysa alfabetik sıraya göre sıralanmalıdır.

Kendin dene

function sortByLength(arr) {
    return arr.sort((a, b) => {
        // Kodu buraya 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