¿Cuál es el/manera más rápida de una sola línea para convertir una matriz de esta manera:¿La forma más rápida/única de recolectar duplicados en Ruby Array?
[1, 1, 1, 1, 2, 2, 3, 5, 5, 5, 8, 13, 21, 21, 21]
... en una matriz de objetos de esta manera:
[{1 => 4}, {2 => 2}, {3 => 1}, {5 => 3}, {8 => 1}, {13 => 1}, {21 => 3}]
bueno, eso es todo! Gracias. –
Puede limpiar eso un poco usando un hash con un valor predeterminado: 'array.inject (Hash.new (0)) {| h, v | h [v] + = 1; h} .map {| k, v | {k => v}} ' – rampion
Y para ordenarlo (como en el ejemplo de la pregunta), agregue' .sort_by {| o | o.keys [0]} 'a él. * Ahora * está desordenado. :) –