我正在使用一个名为 my_hash 的哈希表:
首先,我尝试解析my_hash中的所有键(它们都是时间)。
这给我带来了以下结果:
但是这将返回以下错误:
我该如何将parsed_keys映射回my_hash的键?
我的目标是摆脱所有键末尾的“00:00:00+00”。
{"2011-02-01 00:00:00+00"=>816, "2011-01-01 00:00:00+00"=>58, "2011-03-01 00:00:00+00"=>241}
首先,我尝试解析my_hash中的所有键(它们都是时间)。
my_hash.keys.sort.each do |key|
parsed_keys << Date.parse(key).to_s
end
这给我带来了以下结果:
["2011-01-01", "2011-02-01", "2011-03-01"]
然后,我尝试将parsed_keys映射回到my_hash的键:
Hash[my_hash.map {|k,v| [parsed_keys[k], v]}]
但是这将返回以下错误:
TypeError: can't convert String into Integer
我该如何将parsed_keys映射回my_hash的键?
我的目标是摆脱所有键末尾的“00:00:00+00”。
parsed_keys
是一个数组,而parsed_keys[k]
正在索引到一个数组中,因此Ruby希望您使用索引而不是字符串。如果您真的想保持代码不变,请将parsed_keys
也设置为哈希,并像这样设置:parsed_keys[key] = Date.parse(key).to_s
。 - MrDanA