Создайте новый хеш, перебирая хеш. Самый элегантный способ? - PullRequest
2 голосов
/ 03 мая 2011

Должен быть более элегантный способ, чем этот?

rates = { 40 => 2.75, 25 => 3.25, 15 => 4.75 }

effective_rates = {}
rates.each do |depos, rate|
  effective_rates[depos] = rate/1200
end

Ответы [ 3 ]

4 голосов
/ 03 мая 2011

правый.

rates = { 40 => 2.75, 25 => 3.25, 15 => 4.75 }
effective_rates = Hash[rates.map{|depos, rate| [depos, rate/1200]}]
# => {40=>0.0022916666666666667, 25=>0.0027083333333333334, 15=>0.003958333333333334}
3 голосов
/ 03 мая 2011
effective_rates = rates.merge(rates){|depos, rate| rate/1200}
3 голосов
/ 03 мая 2011
effective_rates = rates.inject({}) { |m, (k,v)| m[k] = v/1200; m }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...