在ruby中对哈希值求和的最佳方法是什么:
@price = { :price1 => "100", :price2 => "100", :price3 => "50" }
Run Code Online (Sandbox Code Playgroud)
我现在做这样的事情:
@pricepackage = @price[:price1] + @price[:price2] + @price[:price3] + 500
Run Code Online (Sandbox Code Playgroud)
请解释一下你的答案,我想了解原因,而不仅仅是如何.=)
你可以做:
@price.values.map(&:to_i).inject(0, &:+)
Run Code Online (Sandbox Code Playgroud)
编辑:添加说明
所以@price.values返回一个数组,收集哈希的所有值.那是例如["1", "12", "4"].然后.map(&:to_i)应用于to_i此数组的每个元素,从而得到[1,12,4].最后,.inject(0,&:+)预制件注入初始值0并使用该函数进行累加+,因此它在最后一步中对数组的所有元素求和.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |