2013-04-29 1 views
5

Ho un array con questa struttura:Ordina array in ordine crescente in base a int e non stringhe

myArray = [ [<number>, [<string>] ], [<number>, [<string>] ], ... ]; 

mi piacerebbe ordinare l'array secondo le int. Sfortunatamente, quando chiamo .sort() su myArray mi restituisce un array ordinato secondo le stringhe. Come posso risolvere questo?

+0

Mix [Ordinamento oggetti in un array da un valore di campo in JavaScript] (http://stackoverflow.com/questions/1129216/sorting -oggetti-in-un-array-da-un-campo-valore-in-javascript) con [ordina un array javascript di numeri] (http://stackoverflow.com/q/9438814/1048572) (non trovato il duplice esatto di questo) – Bergi

risposta

6

Prova questa

myArray.sort(function(a,b) {return a[0]-b[0]}) 
+0

Semplice e funzionante –

0

Per eseguire un ordinamento numerico, è necessario passare una funzione come argomento quando si chiama il metodo di ordinamento.

var myarray=[[21,"aadfa"], [24,"ca"],[52,"aa"], [15,"ba"]] 
myarray.sort(function(a,b){return a[0] - b[0]}) 

è possibile trovare ulteriori informazioni su di esso sul http://www.javascriptkit.com/javatutors/arraysort.shtml

La funzione specifica se i numeri devono essere ordinati ascendente o discendente.

Qui si hanno altri esempi http://www.w3schools.com/jsref/jsref_sort.asp

+0

Non funziona. Grazie lo stesso. –

+0

L'ho modificato. Per renderlo multidimensionale. – Robert

+0

Hai fatto subito dopo che ho risposto;) – Oktav