从嵌套数组解析数组到字符串

时间:2014-03-23 11:12:21

标签: ruby arrays parsing nested

假设我有嵌套数组,如:

nested = [
             [0.5623507523876472, ["h", "e", "l", "l", "o"]], 
             [0.07381531933500263, ["h", "a", "l", "l", "o"]], 
             [0.49993338806153054, ["n", "i", "h", "a", "o"]], 
             [0.6499234734532127, ["k", "o", "n", "n", "i", "c", "h", "i", "w", "a"]]
         ]

最初我想将其转换为哈希值。但首先我必须将数组(例如[“h”,“e”,“l”,“l”,“o”])转换为“hello”。

所以我的问题是如何将nested转换为:

[ 
   [0.5623507523876472, "hello"],
   [0.07381531933500263, "hallo"],
   [0.49993338806153054, "nihao"],
   [0.6499234734532127, "konnichiwa"]
]

1 个答案:

答案 0 :(得分:2)

如果您不想销毁源数组nested

使用Array#map

nested = [
             [0.5623507523876472, ["h", "e", "l", "l", "o"]], 
             [0.07381531933500263, ["h", "a", "l", "l", "o"]], 
             [0.49993338806153054, ["n", "i", "h", "a", "o"]], 
             [0.6499234734532127, ["k", "o", "n", "n", "i", "c", "h", "i", "w", "a"]]
         ]

nested_map = nested.map { |a,b| [a,b.join] }
# => [[0.5623507523876472, "hello"],
#     [0.07381531933500263, "hallo"],
#     [0.49993338806153054, "nihao"],
#     [0.6499234734532127, "konnichiwa"]]

如果要销毁源数组nested

使用Arry#map!方法:

nested = [
             [0.5623507523876472, ["h", "e", "l", "l", "o"]], 
             [0.07381531933500263, ["h", "a", "l", "l", "o"]], 
             [0.49993338806153054, ["n", "i", "h", "a", "o"]], 
             [0.6499234734532127, ["k", "o", "n", "n", "i", "c", "h", "i", "w", "a"]]
         ]

nested.map! { |a,b| [a,b.join] }
# => [[0.5623507523876472, "hello"],
#     [0.07381531933500263, "hallo"],
#     [0.49993338806153054, "nihao"],
#     [0.6499234734532127, "konnichiwa"]]