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.

Kopya kağıdı

sort() metodu, dizi öğelerini yerinde sıralar ve sıralanmış diziyi döndürür. Varsayılan olarak, öğeleri alfabetik sırayla dizeler olarak sıralar.

Temel sözdizimi:

array.sort([compareFunction])

Dizeleri sıralama:

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

Uyarı: Sayılar, bir karşılaştırma fonksiyonu olmadan doğru şekilde sıralanmaz:

const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers); // [1, 100000, 21, 30, 4] (incorrect)

Karşılaştırma fonksiyonu şunları döndürür:

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

Sayıları doğru şekilde sıralama:

// Artan sıralama
numbers.sort((a, b) => a - b);

// Azalan sıralama
numbers.sort((a, b) => b - a);

Nesneleri sıralama:

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

// Yaşa göre sırala
people.sort((a, b) => a.age - b.age);

// İsme göre alfabetik olarak sırala
people.sort((a, b) => a.name.localeCompare(b.name));

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