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 dizinin öğelerini yerinde sıralamanıza olanak tanır ve sıralanmış diziyi döndürür. Varsayılan olarak, öğeleri alfabetik ve artan düzende dizeler olarak sıralar.

İşte temel sözdizimi:

array.sort([compareFunction])

Karşılaştırma fonksiyonu kullanmadan örnek:

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

UYARI: Sayılar, karşılaştırma fonksiyonu olmadan 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 sıralama uygulamak için bir karşılaştırma fonksiyonu (compare function) kullanmanız gerekir.

Karşılaştırma fonksiyonu ş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

İşte bir karşılaştırma fonksiyonu kullanarak sayıları nasıl sıralayacağınız:

// 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 düzen
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ın)
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

Görev

Kolay

Bir dize dizisi alan ve aynı dizeleri uzunluklarına göre artan sırada sıralanmış yeni bir dizi döndüren sortByLength adında bir fonksiyon oluşturun. Eğer iki dize aynı uzunluktaysa, alfabetik olarak sıralanmalıdırlar.

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