将Ruby数组转换为整齐的列字符串?

5

我是一个ruby的新手,我正在尝试编写一个程序来自动格式化给定的字符串和数组。我正在尝试理解的其中一个自动格式化函数是用于数组的函数。例如,假设我有一个如下所示的数组:

myArray = ["a", "b", "c"]

我希望将其转换为列字符串,以便puts myString会输出:

`1) a`
`2) b`
`3) c`

我该如何做到这一点?最接近的方法是使用.each,但这不是我想要的,我不能将每一行作为单独的条目。它必须是一个带有换行符的字符串。
任何帮助都将不胜感激,提前致谢。

这个 myArray.each_with_index.map {|i, j| "#{i+1}) #{j}"}.join("\n") 怎么样? - Eli Sadoff
1个回答

9
你可以使用 .with_index.map 一起使用:
myArray = ["a", "b", "c"]

myStr = myArray.map.with_index(1) { |el, i| "#{i}) #{el}" }.join("\n")
puts myStr

输出:

1) a
2) b
3) c

对于 OP 的用例,你需要 #{i+1},但这是一个很好的答案。 - Eli Sadoff
没问题。你的答案非常优雅。 - Eli Sadoff
3
我认为使用 with_index(1) 将索引从1开始会比每次迭代时使用 i+1 更好。 - Michael Kohl
这里不需要使用 joinputs myArray.map.with_index(1) { ... } 会得到相同的结果。 - Jordan Running

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接