CodeBlanks Logo Icon CodeBlanks

Intl.Collator

JavaScript kursu · Uzman · Ders 55/63

Intl.Collator ile dile özgü sıralama ve karşılaştırma yapmayı öğrenirsin.

Intl.Collator

Intl.Collator dile göre dize karşılaştırma ve sıralama yapar. Varsayılan Array.prototype.sort ASCII sırasını kullanır; bu yüzden 'ş' ve 'ö' gibi harfler yanlış yere düşer. Intl.Collator('tr-TR') ile Türkçe alfabeyi doğru sıralar; compare metodu iki dize alır ve -1, 0 veya 1 döndürür. Sonucu doğrudan Array.sort'a callback olarak verebilirsin. Karşılaştırma seçenekleri harf duyarlılığını, sayısal sıralamayı ve noktalama işaretlerini denetler.

compare metodu ve seçenekleri

compare metodu iki dize alır; ikinci dize önceyse negatif, eşitse 0, sonra ise pozitif değer döner. Array.sort'a doğrudan collator.compare vererek sıralama yaparsın. sensitivity seçeneği harf duyarlılığını belirler: 'base' büyük-küçük harfi yok sayar, 'accent' vurguyu sayar, 'case' yalnız harf duyarlılığını sayar, 'variant' varsayılan ve en katıdır. numeric: true ile 'item2' önce 'item10' olacak şekilde sayısal sıralama yapılır.

Uygulama İsimleri Türkçe sırala

'tr-TR' locale'i için bir Intl.Collator oluştur. sensitivity 'base' olsun. names dizisini collator.compare ile sırala.

Örnek çözümü göster
1. const collator = new Intl.Collator('tr-TR', { sensitivity: 'base' }) ile oluştur.
2. names.sort(collator.compare) ile sırala.

Örnek çözüm:
const collator = new Intl.Collator('tr-TR', { sensitivity: 'base' });
names.sort(collator.compare);

Kendini test et

  1. Neden Array.sort yerine Intl.Collator kullanılır?

    • Daha hızlı çalıştığı için
    • Dile özgü harf sırasını doğru uyguladığı için
    • Daha az bellek tükettiği için
    • Diziyi ters çevirdiği için
    Cevabı göster

    Dile özgü harf sırasını doğru uyguladığı için — Doğru. Collator dile özgü sıralama davranışını uygular; ASCII sırası Türkçe harfleri yanlış sıralar.

  2. Büyük-küçük harfi yok say

    const c = new Intl.Collator('tr-TR', { sensitivity: ____ });
    Cevabı göster
    const c = new Intl.Collator('tr-TR', { sensitivity: 'base' });
  3. Collator seçeneklerini anlamına eşleştir

    sensitivity
    Harf duyarlılığı
    numeric
    Sayısal sıralama
    caseFirst
    Büyük/küçük önceliği
    ignorePunctuation
    Noktalama yok say

Uzman bölümündeki tüm dersler