Ho un hash come questoOrdina un hash per valore in ordine e poi il tasto decrescente in ordine crescente rubino
trial_hash ={"key1"=>1000, "key2"=>34, "key3"=>500, "key4"=>500, "key5"=>500, "key6"=>500}
lo ordino in ordine di valore decrescente:
my_hash = trial_hash.sort_by{|k, v| v}.reverse
ottengo in questo modo:
[["key1", 1000], ["key4", 500], ["key5", 500], ["key6", 500], ["key3", 500], ["key2", 34]]
Ma voglio che sia ordinato in ordine crescente di chiave quando il valore è lo stesso. Come lo faccio?
Per esempio: I hash sarebbe ordinato questo modo:
[["key1", 1000], ["key3", 500], ["key4", 500], ["key5", 500], ["key6", 500], ["key2", 34]]
cool .. grazie! Ho provato questo trial_hash.sort_by {| k, v | [v, -Integer (k)]}. reverse ma la chiave non era una stringa, quindi non ha funzionato, ho fatto in modo che la chiave 1 invece di key1 funzionasse. ma il tuo nuovo codice è fantastico. – inquisitive