Diciamo che ho un allineamento non differenziati da 1 a 10, come mostrato di seguito ...ordinare un array di stringhe per la loro valori interi
a = ["3", "5", "8", "4", "1", "2", "9", "10", "7", "6"]
Se uso il metodo di ordinamento in questo array, restituisce questo ...
a.sort = ["1", "10", "2", "3", "4", "5", "6", "7", "8", "9"]
Come si può vedere, il 10, appare prima del 2, che non è corretto. Come posso ordinare questi numeri in modo che 10 appaia correttamente?
EDIT: Ciao ragazzi, grazie a tutti per le vostre risposte. Dovrei spiegare un po 'meglio il mio problema. L'array che ho bisogno di ordinare è per un listino prezzi di e-commerce. Quindi la matrice appare come segue ...
a = ["0-10", "11-20", "21-30", "31-40" etc.]
Quindi le stringhe non possono essere convertiti in numeri interi. Avrei dovuto metterlo quando ho scritto la domanda. Non pensavo che ci sarebbe stata molta differenza nella correzione. Errore mio, mi scuso per aver fatto questa supposizione! Come posso ordinare questo array? Grazie!
Penso che questa questione è già stata risolta: http://stackoverflow.com/questions/1955646/sort-strings-and-numbers-in-ruby/1964686#1964686 –
appena pubblicato una risposta alla tua aggiornata domanda – apneadiving
Ti suggerisco di pubblicare una nuova domanda con la descrizione aggiornata, dal momento che tutte le risposte sono basate sulla descrizione errata. –