如何用如下数组中的键初始化散列?
keys = [ 'a' , 'b' , 'c' ]
所需的哈希值应为:
puts h
# { 'a' => nil , 'b' => nil , 'c' => nil }
最佳答案
这里我们使用Enumerable#each_with_object
和Hash::[]
。
keys = [ 'a' , 'b' , 'c' ]
Hash[keys.each_with_object(nil).to_a]
# => {"a"=>nil, "b"=>nil, "c"=>nil}
或使用
Array#product
keys = [ 'a' , 'b' , 'c' ]
Hash[keys.product([nil])]
# => {"a"=>nil, "b"=>nil, "c"=>nil}