我有一系列的哈希像这样:
[{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}]
Run Code Online (Sandbox Code Playgroud)
而我正在尝试将此映射到单个哈希,如下所示:
{"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"}
Run Code Online (Sandbox Code Playgroud)
我已经实现了它
par={}
mitem["params"].each { |h| h.each {|k,v| par[k]=v} }
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有可能以更惯用的方式做到这一点(最好不使用局部变量).
我怎样才能做到这一点?
给出以下哈希:
{"7"=>"Ada (gnat-4.3.2)", "13"=>"Assembler (nasm-2.07)", "45"=>"Assembler (gcc-4.3.4)", "104"=>"AWK (gawk) (gawk-3.1.6)", "105"=>"AWK (mawk) (mawk-1.3.3)", "28"=>"Bash (bash 4.0.35)", "110"=>"bc (bc-1.06.95)", "12"=>"Brainf**k (bff-1.0.3.1)", "11"=>"C (gcc-4.3.4)", "27"=>"C# (mono-2.8)", "1"=>"C++ (gcc-4.3.4)", "44"=>"C++0x (gcc-4.5.1)", "34"=>"C99 strict (gcc-4.3.4)", "14"=>"CLIPS (clips 6.24)", "111"=>"Clojure (clojure 1.1.0)", "118"=>"COBOL (open-cobol-1.0)", "106"=>"COBOL 85 (tinycobol-0.65.9)", "32"=>"Common Lisp (clisp) (clisp 2.47)", "102"=>"D (dmd) (dmd-2.042)", "36"=>"Erlang (erl-5.7.3)", "124"=>"F# (fsharp-2.0.0)", "123"=>"Factor (factor-0.93)", "125"=>"Falcon (falcon-0.9.6.6)", "107"=>"Forth (gforth-0.7.0)", "5"=>"Fortran (gfortran-4.3.4)", "114"=>"Go (gc-2010-07-14)", "121"=>"Groovy (groovy-1.7)", "21"=>"Haskell (ghc-6.8.2)", "16"=>"Icon (iconc 9.4.3)", "9"=>"Intercal (c-intercal 28.0-r1)", "10"=>"Java (sun-jdk-1.6.0.17)", "35"=>"JavaScript (rhino) (rhino-1.6.5)", "112"=>"JavaScript …Run Code Online (Sandbox Code Playgroud) 我有一个阵列
["bob:12 elm st", "sally:100 digital ave", "tom:2324 elmhurst st"]
Run Code Online (Sandbox Code Playgroud)
我需要转换为
{"bob" => "12 elm st", "sally" => "100 digital ave", "tom" => "2324 elmhurst st"}.
Run Code Online (Sandbox Code Playgroud)
我知道我能做到
array.each do |e|
k = e.split(":").first
v = e.split(":").last
hash[k] = v
end
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来做到这一点?