我有
hash
和一个哈希数组 array
:
hash = {"BEGIN"=>5, "END"=>10}
array = [
{:name=>"aaa", :phase=>"END", :quantity=>6},
{:name=>"bbb", :phase=>"END", :quantity=>4},
{:name=>"ccc", :phase=>"BEGIN", :quantity=>5}
]
如何计算哈希数组中从哈希中获取值的百分比并获得此结果?
[
{:name=>"aaa", :phase=>"END", :quantity=>60%},
{:name=>"bbb", :phase=>"END", :quantity=>40%},
{:name=>"ccc", :phase=>"BEGIN", :quantity=>100%}
]
提前谢谢您!
获取整数百分比
hash = { "BEGIN" => 5, "END" => 10 }
array = [
{ name: "aaa", phase: "END", quantity: 6 },
{ name: "bbb", phase: "END", quantity: 4 },
{ name: "ccc", phase: "BEGIN", quantity: 5 }
]
array.map! { |el| el.merge(quantity: el[:quantity] * 100 / hash[el[:phase]]) }
p array
# will print
# [{:name=>"aaa", :phase=>"END", :quantity=>60}, {:name=>"bbb", :phase=>"END", :quantity=>40}, {:name=>"ccc", :phase=>"BEGIN", :quantity=>100}]
或者你使用每个
array.each { |el| el[:quantity] = el[:quantity] * 100 / hash[el[:phase]] }