我有这样的哈希。
products = {199 =>['Shoes', 59.99], 211 =>['Shirts', 19.99], 245 =>['Hats', 25.99], 689 => ['Coats', 99.99], 712 => ['Beanies', 6.99]}
它有一个项目编号=> [product, price]
。
我想在不使用注入方法的情况下总结所有价格。
有人可以帮我吗?
答案 0 :(得分:16)
products.values.map(&:last).reduce(:+) #=> 212.95
答案 1 :(得分:5)
为什么不使用注射?注入正是你想要的。
products.inject(0) { |total, (k, v)| total + v.last }
当然,您可以使用更具程序性的解决方案,但为什么呢?
答案 2 :(得分:1)
sum = 0
products.each { |key, value| sum += value.last }
答案 3 :(得分:0)
这应该适用于任何版本的Ruby,只使用内置函数:
products.values.map(&:last).reduce(&:+) # => 212.95