2017-11-03 1 views
2

첫 번째 암호를 두 번째 암호로 쉽게 변환 할 수 있습니까? 두 개의 연속적인 ActiveRecord .group() 메소드에서 온 것입니다.해시의 간단한 해시에 대한 배열 키가있는 해시

1) sales = {["USD", 11]=>0.158148e4, ["USD", 10]=>0.35248e3, ["EUR", 10]=>0.3508e3} 

2) sales = {"USD": { 11 =>0.158148e4, 10 => 0.35248e3}, "EUR": { 10 =>0.3508e3}} 

답변

3

당신은 Enumerable#each_with_object를 사용할 수 있습니다 최고

sales.each_with_object(Hash.new { |k,v| k[v] = {} }) do |((f, s), v), memo| 
    memo[f][s] = v 
end 
#=> {"USD"=>{11=>1581.48, 10=>352.48}, "EUR"=>{10=>350.8}} 
+0

을! 고마워요. IIya – romss182

+0

@ romss182, 오신 것을 환영합니다. – Ilya

관련 문제