Ho un contatore di hash che sto cercando di ordinare in base al conteggio. Il problema in cui mi imbatto è che la funzione Hash.sort predefinita ordina i numeri come stringhe anziché per dimensione numerica.
vale a dire Hash dato:
metrics = {"sitea.com" => 745, "siteb.com" => 9, "sitec.com" => 10 }
In esecuzione questo codice:
metrics.sort {|a1,a2| a2[1]<=>a1[1]}
restituirà un array ordinato:
[ 'siteb.com', 9, 'sitea.com', 745, 'sitec.com', 10]
Anche se 745 è un numero maggiore di 9, 9 apparirà per primo nell'elenco. Quando provo a mostrare chi ha il massimo dei voti, questo mi rende la vita difficile. :)
Qualche idea su come ordinare un hash (o un array pari) in base alla dimensione del valore numerico?
Apprezzo qualsiasi aiuto.