在Ruby中为数组中的每个元素添加前缀

6
有没有一种方法可以在数组的每个元素前加上某些内容。
例如:
file = File.new(my_file,'r')

header = IO.readlines(my_file)[1]  # header looks like [1,2,3]
#Prepend each elelement of header with filename, something like
header.prepend(filename+".")     #header looks like [filename.1,filename.2,filename.3]
2个回答

19
你想要使用map函数:
["foo", "bar", "baz"].map { |word| "prepend-#{word}" }
#=> ["prepend-foo", "prepend-bar", "prepend-baz"]

这个方法的经典案例。该方法还可以接受包含任何类型元素的数组。


嗯,你说得对。我应该先在控制台中测试我的代码 - map 是正确的方法。+1 - jefflunt

1
我们有一个默认的方法将元素添加到数组的开头。
header = [1, 2, 3]

header.map { |h| h.to_s.prepend("filename.")}}

输出:

["filename.1", "filename.2", "filename.3"]

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