Pau*_*den 1 ruby arrays hash ruby-1.9
我有一个数组,我想将其转换为哈希.我希望数组元素是键,所有值都相同.
这是我的代码:
h = Hash.new
myarr.each do |elem|
h[elem] = 1
end
Run Code Online (Sandbox Code Playgroud)
一种替代方案如下.我不认为它与上述解决方案有很大不同.
h = Hash[ *myarr.collect { |elem| [elem, 1] }.flatten ]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法可以做到这一点?
代码OP写的,也可以写成: -
a = %w(a b c d)
Hash[a.each_with_object(1).to_a]
# => {"a"=>1, "b"=>1, "c"=>1, "d"=>1}
Run Code Online (Sandbox Code Playgroud)
如果你有Ruby版本> = 2.1,那么
a.each_with_object(1).to_h
# => {"a"=>1, "b"=>1, "c"=>1, "d"=>1}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
120 次 |
最近记录: |