2012-06-28 14 views
13

Bunu kutudan çıkarmanın yolu _.sortBy yöntemiyle mi yoksa kütüphanenin başka bir parçasıyla mı?Omurga koleksiyonunu alfabetik olarak ayırma

+7

Sorunuz Underscore diyor itibaren, varsayılan sıralama olduğuna inanıyoruz, ancak bir cevap kabul Omurga. Bu sayfaya geldim çünkü aslında bir Müstehcen cevabı arıyorum, bu yüzden bu başlık yanıltıcıdır. Lütfen başlığı değiştirmeyi düşünün. –

cevap

10

Sorunuzda backbone.js etiketiyle etiketlendiğinizden beri, bir koleksiyonu sıralamak istediğinizi varsayarsak, koleksiyonunuzda bir comparator işlevi sağlamanız ve koleksiyonun sıralı olarak kalmasını sağlayabilirsiniz.

soru özellikle alphabeticical sıralama ise, bunu backbone.js belgelere (yukarıdaki kendisine bağlı)

chapters.comparator = function(chapter) { 
    return chapter.get("page"); 
}; 
+1

Bu aslında tam olarak ihtiyacım olan şey. Siz onları işaret edene kadar dokümanlardaki karşılaştırıcılarla karşılaşmadım. Çok teşekkürler! –

25

this mu demek istediniz? Kutudan çıkar çıkmaz diyorum.

Eğer dizeleri sıradan dizi sıralamak isteseydi

, muhtemelen sadece sort kullanmak istiyorum:

var flatArray = ["banana", "carrot", "apple"]; 

flatArray.sort(); 

here bakınız. Ayrıca çalışır. Alt çizgi en sortBy döner JavaScript yerleşik sort fonksiyonu sıralanır bir yeni dizisi, yerlerine bir dizi sıralar

Not.

+1

Bu çok kullanışlı bir örnektir. Çok teşekkürler! İlk dizinde olacak sermaye C "Havuç" ile "Havuç" yazarsanız – ducin

+0

_.sortBy() düzgün çalışmaz. http://jsfiddle.net/uHtUX/39/ – Andrej

+0

@Andrej "düzgün çalışmayacak"? Ben (tıpkı ' 'a' < 'A'' vs'' A '<' web konsolunda a'' deneyin yani) sortBy' 'için kullanılan varsayılan karşılaştırma fonksiyonu standart alfanümerik sipariş takip edeceğini oldukça makul olduğunu düşünüyorum. Eğer bir harf duyarsız tür isteseydi böyle, ilk değerlere 'toLowerCase' çağırmak için bir işlev kaynağı olabilir: http://jsfiddle.net/uHtUX/40/ –

İlgili konular