Arrays ruby将嵌套数组转换为哈希

Arrays ruby将嵌套数组转换为哈希,arrays,ruby,hash,enumerable,Arrays,Ruby,Hash,Enumerable,是否有一种优雅的方法来转换表单的嵌套数组 [["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]] {"a" => [1,2], nil => [3,4], "b" => [6,8]} 把表格分成一堆 [["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]] {"a" => [1,2], nil => [3,4], "b" =>

是否有一种优雅的方法来转换表单的嵌套数组

[["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]
{"a" => [1,2], nil => [3,4], "b" => [6,8]}
把表格分成一堆

[["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]
{"a" => [1,2], nil => [3,4], "b" => [6,8]}
这是一种方式:

arr = [["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]

h = Hash.new {|hash, key| hash[key] = []}
arr.each {|e| h[e[0]] << e[1]}
p h #=> {"a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]}
arr=[[“a”,1],“a”,2],[nil,3],[nil,4],“b”,6],“b”,8]]
h=Hash.new{| Hash,key | Hash[key]=[]}
arr.each{| e | h[e[0]{“a”=>[1,2],nil=>[3,4],“b”=>[6,8]}
这是一种方法:

arr = [["a", 1], ["a", 2], [nil, 3], [nil, 4], ["b", 6], ["b", 8]]

h = Hash.new {|hash, key| hash[key] = []}
arr.each {|e| h[e[0]] << e[1]}
p h #=> {"a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]}
arr=[[“a”,1],“a”,2],[nil,3],[nil,4],“b”,6],“b”,8]]
h=Hash.new{| Hash,key | Hash[key]=[]}
arr.each{| e | h[e[0]{“a”=>[1,2],nil=>[3,4],“b”=>[6,8]}
一种方法可以是:

array = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
array.each_with_object(Hash.new{|h,k| h[k] = []}) {|a, obj| obj[a.first] << a.last }
# => {"a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]}
array=[[a',1],[a',2],[nil,3],[nil,4],[b',6],[b',8]]
数组。每个_与_对象(Hash.new{h,k{h[k]=[]){a,obj{obj[a.first]{“a”=>[1,2],nil=>[3,4],“b”=>[6,8]}
一种方法可以是:

array = [['a', 1], ['a', 2], [nil, 3], [nil, 4], ['b', 6], ['b', 8]]
array.each_with_object(Hash.new{|h,k| h[k] = []}) {|a, obj| obj[a.first] << a.last }
# => {"a"=>[1, 2], nil=>[3, 4], "b"=>[6, 8]}
array=[[a',1],[a',2],[nil,3],[nil,4],[b',6],[b',8]]
数组。每个_与_对象(Hash.new{h,k{h[k]=[]){a,obj{obj[a.first]{“a”=>[1,2],nil=>[3,4],“b”=>[6,8]}

array.each_with_object({})a,h |(h[a.first]| |=[])
array.each_with_object({})a,h |(h[a.first]| |=[])thx对于所有建议,我将使用
Hash[array.group|u by(&:first)。map{k,v |[k,v.map(&:last(?),正如我认为最容易阅读的代码一样,对于所有建议,我将使用
Hash[thx]数组(&:first).map{k,v |[k,v.map(&:last)]}]
因为我认为它是最可读的(?)您命令的输出是哈希列表,而不仅仅是哈希。您命令的输出是哈希列表,而不仅仅是哈希