转换
数组的最佳方法是什么arr = ["one", "two", "three", "four", "five"]
哈希
{"one"=>0, "two"=>0, "three"=>0, "four"=>0, "five"=>0}
我打算填补“0' 0有了我自己的价值观,我现在只需要这个技术。
感谢。
答案 0 :(得分:5)
我不知道它是否是最佳方式:
Hash[arr.map{ |el| [el, 0] }]
答案 1 :(得分:5)
arr.product([0]).to_h
或版本< 2.0
Hash[arr.product([0])]
答案 2 :(得分:3)
我会这样做:
arr.inject({}) { |hash, key| hash.update(key => 0) }
答案 3 :(得分:2)
Hash[ *arr.collect { |v| [ v, 0 ] }.flatten ]
答案 4 :(得分:0)
您也可以
arr.each_with_object({}) {|v, h| h[v] = 1}
其中:
v
是数组中每个元素的值,h
表示哈希对象