【发布时间】:2015-02-28 09:14:26
【问题描述】:
我有一个如下所示的数组:
f = [["Wed, 12-31", 120.0],["Thu, 01-01", 120.0], ["Thu, 01-01", 120.0]]
我可以将其转换为哈希并删除重复的键:
h = Hash[ *f.collect { |v| [v] }.flatten ]
# => {"Wed, 12-31"=>120.0, "Thu, 01-01"=>120.0}
几乎就在那里,但我想将具有相同日期字符串的元素的值相加,上述数组的所需结果将是:
{"Wed, 12-31"=>120.0, "Thu, 01-01"=>240.0}
我怎样才能做到这一点?
【问题讨论】:
-
注意,您可以将您的数组转换为一个哈希丢弃重复键,而无需
.collect.flatten废话。只需使用Hash[array]。f.collect { |v| [v] }只是将数组映射到自身。它不做任何事情。.flatten在已经平坦的阵列上同样没用。 -
@KennyMeyer 错了,谷歌? google.ca/…
-
感谢
.collect和.flatten的提示
标签: ruby arrays hash enumerable