2015-03-09 27 views
22

Naprawdę walczę o to, ale nie mogę znaleźć rozwiązania.Sortuj tablicę z Lodash według wartości (liczba całkowita)

Mam tablicę i chcę posortować ją według wartości (wszystkie liczby całkowite). Pomyślałem, że użyjmy lodasha, z pewnością będzie to przydatna funkcja.

Jakoś nie mogę wymyślić, aby to zrobić.

Do tej pory mam to:

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

Dostałem wynik jeśli użyłem tego kodu:

myArray = _(myArray).sort(); 

ale niestety wartość zwracana nie wydaje się być już tablicę. myArray.length jest niezdefiniowana po sortowaniu.

Znalazłem tysiące przykładów tablic sortowania lodash, ale zawsze za pomocą klucza. https://lodash.com/docs#sortBy

Może ktoś powiedzieć mój jaki sposób można uzyskać następujący wynik zwracanej jako tablicę ?:

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

To nie może być takie trudne, ale jakoś nie zrobić to ...

Czasem wydaje mi się, że dokumentacja do pobrania jest trochę skomplikowana. Prawdopodobnie brakuje mi ważnego szczegółu ...

+0

Bez efektu, mógłbyś po prostu uruchomić 'myArray = myArray.sort()' – Pete

Odpowiedz

38

Możesz użyć funkcji sortBy() tutaj. Nie musisz określać klucza, ponieważ będzie on powracał do identity().

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

Ok. wielkie dzięki. To działa dla mnie. Otrzymałem również wynik, biorąc ten kod, chociaż tak naprawdę go nie rozumiem i ten rodzaj notacji nie jest nigdzie zapisany w dokumentach dla lamów. 'myArray = _ (myArray) .sort(). Value();' – Merc

+1

Lodash dodaje metody tablic do wrapperów i jest wspomniany [tutaj] (https://lodash.com/docs#_) w dokumentacji. –