2015-03-09 10 views
22

Sono davvero in difficoltà, ma non riesco a trovare una soluzione.Ordina array con lodash in base al valore (numero intero)

Ho una matrice e voglio ordinarla per valore (tutti gli interi). Ho pensato, bene, usiamo lodash, ci deve essere sicuramente una funzione utile per questo.

In qualche modo non riesco a capire di farlo.

Finora ho ottenuto questo:

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

ho ottenuto un risultato se ho usato questo codice:

myArray = _(myArray).sort(); 

Ma purtroppo il valore di ritorno non sembra più essere un array. myArray.length non è definito dopo l'ordinamento.

Ho trovato migliaia di esempi di array di ordinamento di lodash ma sempre tramite chiave. https://lodash.com/docs#sortBy

Qualcuno può dire a mia come posso ottenere il seguente risultato di ritorno come un array ?:

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

non può essere così difficile, ma in qualche modo non mi avere fatto ...

Anche a volte penso che la documentazione di lodash sia un po 'complessa. Probabilmente mi manca un dettaglio importante ...

+0

Senza lodash, è possibile eseguire 'myArray = myArray.sort()' – Pete

risposta

38

Qui puoi utilizzare la funzione sortBy(). Non è necessario specificare una chiave, poiché ricadrà a 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. molte grazie. Questo sta funzionando per me. Ho anche ottenuto un risultato prendendo questo codice, anche se non lo capisco davvero e questo tipo di notazione non è mai stato scritto nei documenti di lodash. 'myArray = _ (myArray) .sort(). Value();' – Merc

+1

Lodash aggiunge metodi di array ai wrapper ed è menzionato [here] (https://lodash.com/docs#_) nella documentazione. –