Ho un hash del contatore che sto cercando di ordinare per numero. Il problema che sto incontrando è che la funzione Hash.sort predefinita ordina numeri come stringhe piuttosto che in base alla dimensione del numero.Come ordinare un hash di Ruby in base al valore numerico?
cioè Hash Data:
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
esecuzione di questo codice:
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
restituisce un array ordinato:
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
Anche se 745 è un numero maggiore di 9, 9 apparirà prima nella lista. Quando provo a mostrare chi ha il primo conteggio, questo mi rende la vita difficile. :)
Qualche idea su come ordinare un hash (o un array pari) per la dimensione del valore numerico?
Apprezzo qualsiasi aiuto.
quale versione rubino usi? il tuo risultato sort è molto strano – fl00r