gpt4 book ai didi

ruby - 将数组转换为哈希,同时删除重复键和添加值

转载 作者:太空宇宙 更新时间:2023-11-03 17:22:43 33 4
gpt4 key购买 nike

我有一个数组,如下所示:

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}

我怎样才能做到这一点?

最佳答案

这个有效:

result = Hash.new(0)
f = [["Wed, 12-31", 120.0],["Thu, 01-01", 120.0], ["Thu, 01-01", 120.0]]
f.each { |subarray| result[subarray[0]] += subarray[1] }
puts result

如果你喜欢花哨的,你可以使用 .inject()

关于ruby - 将数组转换为哈希,同时删除重复键和添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27735384/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com