对Ruby中的哈希值求和

问题描述 投票:0回答:1

我正在学习Ruby,希望您能对我有所帮助。这是我的第一个问题:)

我正在锻炼并在其中具有以下哈希值的地方:

sales = {
January: 15000,
February: 22000,
March: 12000,
April: 17000,
May: 81000,
June: 13000,
July: 21000,
August: 41200,
September: 25000,
October: 21500,
November: 91000,
December: 21000

}

我需要创建一个新的哈希表,名称为Quarters,其中包含每三个月的总数。这将是输出:{"Q1"=>49000, "Q2"=>111000, "Q3"=>87200, "Q4"=>133500}

这是我能做的最好的事情:

Q1 = sales[:January] + sales[:February] + sales[:March]
Q2 = sales[:April] + sales[:May] + sales[:June]
Q3 = sales[:July] + sales[:August] + sales[:September]
Q4 = sales[:October] + sales[:November] + sales[:December]

quarters = {
    "Q1"=> Q1,
    "Q2"=> Q2,
    "Q3"=> Q3,
    "Q4"=> Q4
}

结果很好。我的问题是,有没有更好,更简单的方法来做到这一点?当然可以。练习中提到了each_slice方法。请解释您的答案。谢谢大家。

ruby hash sum
1个回答
0
投票

您可以使用Enumerable#each_sliceEnumerable#each_slice

Enumerator#with_index
© www.soinside.com 2019 - 2024. All rights reserved.