Intl.Collator
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
-
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.
-
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' }); -
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