将哈希值放入另一个哈希

时间:2019-10-24 15:15:48

标签: ruby loops hash

好的,我要问两个问题,并将每个用户的输入放入单独的哈希中。我正在使用循环来遍历多次,然后将所有哈希添加到数组中。 我的问题是/我困在哪里,如何将每个哈希的值之和分配给它们自己的单独哈希。

这是我的代码:

arr:[]
         (1..n).each do |i|

 hash=Hash.new()

 puts "Please input a value for day # #{i}" 
 hash["day1"]=gets.chomp.to_f

 puts "Please input a value for day # #{i}" 
 hash["day2"]=gets.chomp.to_f

 arr << hash

  end 

我想做这件事,因为这是我一直用于收集用户输入并将其放入哈希中的方法,但是它不起作用:/

   hash[:total]= hash.each_value.inject(:+) 

我基本上想对每个哈希值求和并将其放入一个新的哈希值中。那有可能吗?这是很难的原因,我将不得不在代码块之外执行此操作,但随后系统将无法识别变量:/

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Hash#reduce的{​​{1}}方法

Hash#merge