我有以下内容
friends = [{ name: "Jack", attr1:"def", attr2:"def" }, { name: "Jill", attr1:"def", attr2:"def" }]
Run Code Online (Sandbox Code Playgroud)
我想将上面的表示转换为像这样的哈希哈希
friends = { "Jack" => { attr1: "def", attr2:"def" }, "Jill" => { attr1: "def", attr2: "def" } }
Run Code Online (Sandbox Code Playgroud)
在Ruby中这样做的优雅方式?
Hash[friends.map { |f| _f = f.dup; [_f.delete(:name), _f] }]
# => {"Jack"=>{:attr1=>"def", :attr2=>"def"}, "Jill"=>{:attr1=>"def", :attr2=>"def"}}
Run Code Online (Sandbox Code Playgroud)