我有一个类似于以下的数组
[1,1,2,3,3,3,4,5,5]
我想要统计每个数字出现的次数,尝试以下代码:
[1,1,2,3,3,3,4,5,5].reduce(Hash.new(0)) { |hash,number| hash[number] += 1 }
问题是当我尝试运行它时,会出现以下错误。
NoMethodError: undefined method `[]=' for 1:Fixnum
from (irb):6:in `block in irb_binding'
from (irb):6:in `each'
from (irb):6:in `reduce'
from (irb):6
我能否像这样设置初始值,或者我理解错了吗?
each_with_object
这个方法。我觉得它比在每次迭代中返回哈希表更加简洁。 - Konrad Reiche