有没有办法将符号哈希分割成键和值的字符串数组?
例如:
hash = {:key1 => 'val1',:key2 => 'val2'}
应该是:
keys = ['key1', 'key2']
values = ['val1','val2']
我知道我可以这样做:
keys = hash.keys.map { |key| key.to_s }
values = hash.values.map { |val| val.to_s }
但我想在一个循环中完成它。
答案 0 :(得分:0)
我发现了这个问题,因为我也在寻找一种方法。这就是我想出的:
hash.map { |k,v| [k.to_s, v.to_s] }.transpose
你可以这样使用:
hash = { :k1 => "v1", :k2 => "v2", :k3 => "v3" }
keys, values = hash.map { |k,v| [k.to_s, v.to_s] }.transpose
# keys == ["k1", "k2", "k3"]
# values == ["v1", "v2", "v3"]