将哈希数组转换为字符串

时间:2011-03-09 23:20:04

标签: ruby

hash = { "d" => [11, 22], "f" => [33, 44, 55] }

是否有一个衬垫来获得如下字符串:

d:11,d:22,f:33,f:44,f:55

谢谢!

太好了,谢谢你的提示。为什么此代码不起作用,唯一的区别是我将vs.map替换为vs.each

hash.map {|k,vs| vs.each {|v| "#{k}:#{v}"}}.join(",")

返回"11,22,33,44,55"

2 个答案:

答案 0 :(得分:3)

使用对map的两个嵌套调用来获取“key:value”字符串数组的数组,然后使用join将其转换为逗号分隔的字符串:

hash.map {|k,vs| vs.map {|v| "#{k}:#{v}"}}.join(",")

答案 1 :(得分:0)

hash.keys.map {|k| hash[k].map {|v| "#{k}:#{v}"}}.flatten.join(",")