2015-03-09 31 views
22

Gerçekten bunun üzerinde çalışıyorum ama bir çözüm bulamıyorum.Sıralama dizisini lodash olarak sırala (tamsayı)

Bir dizim var ve onu değer olarak sıralamak istiyorum (tüm tamsayılar). Düşündüm de, lodash kullanalım, bunun için kullanışlı bir işlev olmalı. Bir şekilde bunu yapamayacağımı anlayamıyorum.

myArray = _(myArray).sort(); 

Ama ne yazık ki dönüş değeri artık bir dizi olarak görünmüyor: Bu kodu kullanılırsa bir sonuç var

myArray = [3, 4, 2, 9, 4, 2] 

:

Şimdiye kadar ben hallederim. myArray.length, sıralamadan sonra tanımsız.

Ben her zaman lodash sıralama dizisinin binlerce örneğini buldum, ancak her zaman anahtar. https://lodash.com/docs#sortBy

birileri söyleyebilir benim ben bir dizi olarak aşağıdaki dönüş sonucu ?:

[2, 2, 3, 4, 4, 9] 

O kadar zor olamaz, ama bir şekilde bunu halletmek yok nasıl alabilirim ...

Ayrıca, bazen lodash belgelerinin biraz karmaşık olduğunu düşünüyorum. Muhtemelen önemli bir bilgiyi kaçırıyorum ...

+0

Tek başına, "myArray = myArray.sort()" – Pete

cevap

38

sortBy() işlevini buradan kullanabilirsiniz. identity()'a geri döneceğinden bir anahtar belirtmeniz gerekmez.

var myArray = [ 3, 4, 2, 9, 4, 2 ]; 

_.sortBy(myArray); 
// → [ 2, 2, 3, 4, 4, 9 ] 

_(myArray).sortBy().take(3).value(); 
// → [ 2, 2, 3 ] 
+0

Tamam'ı çalıştırabilirsiniz. çok teşekkürler. Bu benim için çalışıyor. Ayrıca bu kodu alarak bir sonuç elde ettim, gerçekten anlamadım ve bu tür bir nota hiçbir yerde yazılmadı. 'myArray = _ (myArray) .sort(). Value();' – Merc

+1

Lodash, paketleyicilere dizi yöntemleri ekler ve belgelerindeki [burada] (https://lodash.com/docs#_) belirtilir. –