Şimdi yükleniyor

JavaScript ile Dizi Sıralama: Detaylı Anlatım ve Örnekler

JavaScript ile Dizi Sıralama

JavaScript, günümüzde en popüler programlama dillerinden biri olarak, veri manipülasyonu için güçlü araçlar sunar. Veri manipülasyonunun en yaygın ihtiyaçlarından biri, dizileri sıralamaktır. Bu makalede, JavaScript ile dizi sıralama konusunu detaylı bir şekilde anlatacağım. Hem temel bilgiler hem de örnekler ile bu konuda uzmanlaşmanıza yardımcı olacağım.

JavaScript-ile-Dizi-Siralama-2 JavaScript ile Dizi Sıralama: Detaylı Anlatım ve Örnekler

JavaScript’te Dizi Nedir?

Diziler, birden fazla veriyi tek bir değişkende saklamaya yarayan veri yapılarıdır. JavaScript’te diziler şu şekilde tanımlanır:

let sayilar = [5, 2, 8, 1, 4];
let isimler = ["Ali", "Ayşe", "Mehmet"];

JavaScript, dizileri sıralamak için yerleşik bir yöntem olan sort() fonksiyonunu sağlar. Ancak, bu yöntemi etkili kullanmak için bazı temel kuralları bilmek önemlidir.

sort() Fonksiyonu Nasıl Çalışır?

sort() metodu, bir diziyi varsayılan olarak alfabetik sıraya göre sıralar. Eğer diziniz sayılardan oluşuyorsa, bu durum beklenmeyen sonuçlara yol açabilir:

let sayilar = [10, 2, 5, 1];
sayilar.sort();
console.log(sayilar); // Çıktı: [1, 10, 2, 5]

Bu sonuç, JavaScript’in sort() fonksiyonunun elemanları varsayılan olarak string olarak değerlendirmesinden kaynaklanır. Sayısal sıralama için özel bir karşılaştırma fonksiyonu tanımlamak gerekir.

Sayısal Sıralama

Sayısal sıralama için sort() metoduna bir karşılaştırma fonksiyonu (compare function) iletilmelidir:

let sayilar = [10, 2, 5, 1];
sayilar.sort((a, b) => a - b);
console.log(sayilar); // Çıktı: [1, 2, 5, 10]

Bu kodda, a - b pozitif, negatif veya sıfır döndürerek sıralama düzenini belirler:

  • Negatif değer: a, b’den önce gelir.
  • Pozitif değer: b, a’dan önce gelir.
  • Sıfır: a ve b eşittir.

Azalan Sıralama

Azalan sırada sıralama yapmak için karşılaştırma fonksiyonunu ters çevirebilirsiniz:

let sayilar = [10, 2, 5, 1];
sayilar.sort((a, b) => b - a);
console.log(sayilar); // Çıktı: [10, 5, 2, 1]

String ( Metin ) Sıralama

Stringleri sıralamak sort() ile oldukça kolaydır, çünkü JavaScript varsayılan olarak alfabetik sıralama yapar:

let isimler = ["Ali", "Ayşe", "Mehmet", "Zeynep"];
isimler.sort();
console.log(isimler); // Çıktı: ["Ali", "Ayşe", "Mehmet", "Zeynep"]

Ancak Türkçe karakterleri doğru sıralamak için localeCompare() fonksiyonu kullanılmalıdır:

let isimler = ["Ali", "Çağrı", "Ayşe", "Mehmet"];
isimler.sort((a, b) => a.localeCompare(b, 'tr'));
console.log(isimler); // Çıktı: ["Ali", "Ayşe", "Çağrı", "Mehmet"]

Karmaşık Nesnelerin Sıralanması

Eğer diziniz nesnelerden oluşuyorsa, belirli bir anahtara göre sıralama yapmak için özel bir karşılaştırma fonksiyonu yazmanız gerekir:

let ogrenciler = [
  { isim: "Ali", yas: 25 },
  { isim: "Ayşe", yas: 20 },
  { isim: "Mehmet", yas: 22 }
];

ogrenciler.sort((a, b) => a.yas - b.yas);
console.log(ogrenciler);
// Çıktı: [{isim: "Ayşe", yas: 20}, {isim: "Mehmet", yas: 22}, {isim: "Ali", yas: 25}]

Rastgele Sıralama

Bir diziyi rastgele sıralamak için şu yöntem kullanılabilir:

let sayilar = [1, 2, 3, 4, 5];
sayilar.sort(() => Math.random() - 0.5);
console.log(sayilar);

Bu yöntem, her çalıştırıldığında farklı bir sıralama üretecektir.

Büyük Verilerde Dizi Sıralama

Büyük veri setlerinde sıralama işlemi maliyetli olabilir. Bu gibi durumlarda, sıralama algoritmalarını optimize etmek veya tarayıcı yerine sunucu tarafında sıralama yapmak daha mantıklı olabilir.

Performans İpuçları

  1. Doğru Algoritmayı Kullanın: Eğer özel bir sıralama yapmanız gerekiyorsa, JavaScript’in yerleşik sort() fonksiyonu yeterli olmayabilir.
  2. Karşılaştırma Fonksiyonları: Özelleştirilmiş sıralamalar için mutlaka karşılaştırma fonksiyonları yazın.
  3. Immutable Veri: Orijinal diziyi değiştirmeden sıralama yapmak istiyorsanız, diziyi kopyalayıp üzerinde işlem yapabilirsiniz:
let orijinal = [3, 1, 4];
let sirali = [...orijinal].sort((a, b) => a - b);
console.log(sirali);   // Çıktı: [1, 3, 4]
console.log(orijinal); // Çıktı: [3, 1, 4]

JavaScript ile dizi sıralama, etkili veri yönetimi için vazgeçilmez bir beceridir. Bu makalede, hem temel hem de ileri düzey tekniklere yer verdim. Artık dizileri kolayca sıralayabilir, projelerinizde daha esnek çözümler üretebilirsiniz.

Yukarıda paylaştığım kodların çalışan bir örneğini aşağıda ki bağlantılardan inceleyebilirsiniz.

github-logo JavaScript ile Dizi Sıralama: Detaylı Anlatım ve Örnekler
codepen-logo JavaScript ile Dizi Sıralama: Detaylı Anlatım ve Örnekler
Javascript konusuyla ilgili yazdığım tüm yazıları bu bağlantıdan veya github hesabımdan inceyebilirsiniz.

Bir Yorum Yazın