如何检查ruby数组中元素的出现次数

Raj*_*tan 1 ruby arrays count

我们有一个阵列,

a = [1,2,3,2,4,5,2]
Run Code Online (Sandbox Code Playgroud)

现在,我需要逐个获取ruby数组中每个元素的出现.所以,这里元素'1'的发生是1次."2"的出现是3次,依此类推.

之后编辑并添加了以下行,因为提交的大部分答案都误解了我的问题:

That means, I need to take the occurrence of a single element at a time.
Run Code Online (Sandbox Code Playgroud)

我怎么能算得上?

Rus*_*nov 5

a = [1,2,3,2,4,5,2]    
p a.inject(Hash.new(0)) { |memo, i| memo[i] += 1; memo }
# => {1=>1, 2=>3, 3=>1, 4=>1, 5=>1}
Run Code Online (Sandbox Code Playgroud)


Tha*_*you 5

您可以使用enum#reduce

[1,2,3,2,4,5,2].reduce Hash.new(0) do |hash, num|
  hash[num] += 1
  hash
end
Run Code Online (Sandbox Code Playgroud)

输出量

{1=>1, 2=>3, 3=>1, 4=>1, 5=>1}
Run Code Online (Sandbox Code Playgroud)