Ruby - 将'array'转换为hash

时间:2015-01-23 19:35:42

标签: ruby arrays hash

你如何将这个:"x[a=1,b=2,c=3]"(一个字符串)转换为ruby中的{ x => {'a'=>1, 'b'=>2, 'c'=>3} }这样的哈希?

1 个答案:

答案 0 :(得分:1)

我假设第一个键(x)实际上应该是一个字符串。

def foo(str)
    key, rest = str.split("[")
    { key => Hash[rest.gsub("]","").split(",").map { |eqn| k, v = eqn.split("="); [k, v.to_i] }] }
end

foo("x[a=1,b=2,c=3]")
# => {"x"=>{"a"=>1, "b"=>2, "c"=>3}}