有没有更有效的方法将数组转换为哈希?

时间:2011-12-12 00:25:15

标签: ruby arrays hash

我认为我的方法有点笨拙,并且可能会有一个我错过的单行程。想法?

def _to_hash 
    hsh = {}
    self.each_slice(2){|v| hsh[v[0]] = v[1]}
    hsh
end

1.9.3-p0 :003 > ["a", 1, "b", 2]._to_hash
{
    "a" => 1,
    "b" => 2
}

2 个答案:

答案 0 :(得分:4)

@ phiggy的方法是正确的,但也要记住你可以使用splat操作符:

a = ["a", 1, "b", 2]
Hash[*a] #=> {"a"=>1, "b"=>2}

答案 1 :(得分:3)

你想要Hash的。[]运算符:

> Hash["a", 1, "b", 2]
 => {"a"=>1, "b"=>2}