好吧,我已经尝试了很多次,并试图弄清楚发生了什么......
假设我希望对散列中一堆对象的数量求和:
orders = [{:price => 100, :qty => 5}, {:price => 120, :qty => 10}, {:price => 50, :qty => 5}]
我想对上面数组项中的每个哈希对象求和....
假设变量“sum”是结果:
sum = 0
sum = orders.each {|i| sum += i[:price] * i[:qty]}
但它返回相同的哈希对象:
[{:price => 100, :qty => 5}, {:price => 120, :qty => 10}, {:price => 50, :qty => 5}]
我认为结果应该是 0 + (100 * 5) + (120 * 10) + (50 * 5)
为什么会这样?
我的解决方案是执行以下操作: sum = 0 total = [] orders.each {|i| 总计 << i[:price] * i[:qty]} total.each {|i| 总和 += i}
我认为这根本不直观