我有一个排序数组:

[
  'FATAL <error title="Request timed out.">',
  'FATAL <error title="Request timed out.">',
  'FATAL <error title="There is insufficient system memory to run this query.">'
]

我想得到这样的东西,但它不一定是散列:

[
  {:error => 'FATAL <error title="Request timed out.">', :count => 2},
  {:error => 'FATAL <error title="There is insufficient system memory to run this query.">', :count => 1}
]

推荐答案

下面的代码是你要求的prints.我将让您决定如何实际使用生成您要查找的哈希:

# sample array
a=["aa","bb","cc","bb","bb","cc"]

# make the hash default to 0 so that += will work correctly
b = Hash.new(0)

# iterate over the array, counting duplicate entries
a.each do |v|
  b[v] += 1
end

b.each do |k, v|
  puts "#{k} appears #{v} times"
end

我刚注意到你说数组已经排序了.以上代码不需要排序.使用该属性可能会生成更快的代码.

Ruby相关问答推荐

Ruby错误-应为数组或字符串,已获取哈希

每次调用返回新的 REST 响应的 Ruby Rspec class_double

如何在 Ruby 中正确编写代码?以便它产生正确的输出?

如何从外部获取给定 lambda 的参数值,而不显式返回其绑定?

Ruby 中的yield关键字有什么作用?

确保 Capybara 不存在元素

给url添加参数

将 ruby​​ hash .default 设置为列表

在 Ruby 中将数组转换为索引哈希

`require': no such file to load in ruby

Ruby字符串上的扫描和匹配有什么区别

ruby datetime 中有 add_days 吗?

将Elastic search限制设置为无限制

获取类中声明的所有实例变量

Ruby 1.9:如何正确大写和小写多字节字符串?

在本地覆盖 Vagrant 配置设置(每个开发人员)

Ruby哈希中的条件键/值

Ruby 中的 each 和 collect 方法有什么不同

如何使用 Ruby-Rails 删除文件夹的所有内容?

将浮点数舍入到Ruby中最接近的整数