p [1,2,3,3,3,3,3,4,4,5,5,5].instance_eval { uniq.sort_by {|x| count x}.reverse }
#=> [3, 5, 4, 2, 1]
他になんかいい方法とかより良いメソッド名があったら教えてくださひ
第2弾!知って得する12のRubyのトリビアな記法見て書き直した。 instance_eval便利。
p [1,2,3,3,3,3,3,4,4,5,5,5].instance_eval { uniq.sort_by {|x| count x}.reverse }
#=> [3, 5, 4, 2, 1]
他になんかいい方法とかより良いメソッド名があったら教えてくださひ
第2弾!知って得する12のRubyのトリビアな記法見て書き直した。 instance_eval便利。
melborne++
ありがとうございます!
group_byの方が感覚的に読みやすそう。
配列に数値以外が入ってるときはこんな感じですね。
['a', 'a', 'b', 'c', 'c', 'c'].group_by{|e| e}.sort_by{|_,v|-v.size}.map(&:first)
group_by{|e| e} が正解ですね。
呼ばれたような気がしたので..
おじゃましました!