我正在研究迭代:时间目标部分(来自 Jumpstart Lab 的事件管理器练习)。我想出了如何遍历数组并将其转换为来自该线程的哈希。这就是我所拥有的:
require "date"
time = ["11/12/08 10:47","11/12/08 13:23","11/12/08 13:30","11/12/08 14:04","11/12/08 14:46"]
#makes array of all times
time.each do |time|
@array = Array(DateTime.strptime(time,'%m/%d/%Y %H:%M').hour)
end
#makes hash of :time => number of instances
result = Hash.new(0)
@array.each do |time|
result[time] += 1
end
puts result
我运行它时得到的哈希是{ 14 => 1 }
,这不是我想要的。我怀疑发生这种情况是因为我的数组是由整数组成的,而不是像示例中的字符串。有没有办法对整数实现同样的效果?还是我必须将整数转换为字符串?如果我必须转换为字符串,我应该放在to_s
哪里?