誰かが次の配列を次の形式のハッシュに変換する手助けができますか?配列をカスタム形式のハッシュに変換する
アレイ
[["0", {"checkbox_2"=>"on"}], ["2", {"checkbox_1"=>"on"}]]
ハッシュ
search=>{"checkbox_2"=>"on", "checkbox_1"=>"on"}
誰かが次の配列を次の形式のハッシュに変換する手助けができますか?配列をカスタム形式のハッシュに変換する
アレイ
[["0", {"checkbox_2"=>"on"}], ["2", {"checkbox_1"=>"on"}]]
ハッシュ
search=>{"checkbox_2"=>"on", "checkbox_1"=>"on"}
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"}
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"}}
'{:search => xs.map(&:last).inject(:merge)}'はどうですか? –
@Michael:ええ、またはRailsの(&:秒)。つまり、ペアから取得すると、構造を解消することがより明確になると感じています(他の言語では、これらの要素は配列ではなくタプルになります)。 – tokland
グレート、どうもありがとう! – shub
ハッシュが任意の位置に表示されても、この方法は問題ありませんが、常に2番目の位置にある場合は、不必要に畳み込まれています。 – tokland