将数组转换为哈希并初始化为值

时间:2015-05-28 04:55:19

标签: ruby

转换

数组的最佳方法是什么
arr = ["one", "two", "three", "four", "five"]

哈希

{"one"=>0, "two"=>0, "three"=>0, "four"=>0, "five"=>0}

我打算填补“0' 0有了我自己的价值观,我现在只需要这个技术。

感谢。

5 个答案:

答案 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表示哈希对象