2012-04-09 17 views

答えて

1
arr = [["0", {"checkbox_2"=>"on"}], ["2", {"checkbox_1"=>"on"}]] 
hash = Hash[arr.flatten.select{|e| e.is_a? Hash}.collect{|e| e.to_a.flatten}] 
=> {"checkbox_2"=>"on", "checkbox_1"=>"on"} 
+0

グレート、どうもありがとう! – shub

+0

ハッシュが任意の位置に表示されても、この方法は問題ありませんが、常に2番目の位置にある場合は、不必要に畳み込まれています。 – tokland

2
xs = [["0", {"checkbox_2"=>"on"}], ["2", {"checkbox_1"=>"on"}]] 
search = {:search => xs.map { |n, h| h }.inject(:merge)} 
# {:search=>{"checkbox_2"=>"on", "checkbox_1"=>"on"}} 
+1

'{:search => xs.map(&:last).inject(:merge)}'はどうですか? –

+0

@Michael:ええ、またはRailsの(&:秒)。つまり、ペアから取得すると、構造を解消することがより明確になると感じています(他の言語では、これらの要素は配列ではなくタプルになります)。 – tokland

関連する問題