Jaki jest najszybszy /-liner sposób jeden przekonwertować tablicę tak:Najszybszy/jednolinijkowy sposób na zbieranie duplikatów w Ruby Array?
[1, 1, 1, 1, 2, 2, 3, 5, 5, 5, 8, 13, 21, 21, 21]
... do tablicy obiektów takich jak to:
[{1 => 4}, {2 => 2}, {3 => 1}, {5 => 3}, {8 => 1}, {13 => 1}, {21 => 3}]
fajnie, to wszystko! dzięki. –
Możesz to trochę wyczyścić za pomocą skrótu z wartością domyślną: 'array.inject (Hash.new (0)) {| h, v | h [v] + = 1; h} .map {| k, v | {k => v}} ' – rampion
Aby je posortować (jak w przykładzie pytania), dodaj' .sort_by {| o | o.keys [0]} 'to. * Teraz * jest brudny. :) –