ruby: how to find non-unique elements in array and print each with number of occurrences?

后端 未结 8 1608
轻奢々
轻奢々 2020-12-31 03:54

I have

a = [\"a\", \"d\", \"c\", \"b\", \"b\", \"c\", \"c\"]

and need to print something like (sorted descending by number of occurrences)

8条回答
  •  无人及你
    2020-12-31 04:26

    I personally like this solution:

     a.inject({}) {|hash, val| hash[val] ||= 0; hash[val] += 1; hash}.
       reject{|key, value| value == 1}.sort.reverse.
       each_pair{|k,v| puts("#{k}:#{v}")}
    

提交回复
热议问题