在Ruby中预先挂起数组中的每个元素

时间:2011-12-02 02:07:50

标签: ruby data-structures jruby

有没有办法在数组的每个元素前加上一些东西。

例如:

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 个答案:

答案 0 :(得分:16)

您想使用地图:

["foo", "bar", "baz"].map { |word| "prepend-#{word}" }
#=> ["prepend-foo", "prepend-bar", "prepend-baz"]

此方法的经典案例。此方法还可以采用包含任何类型元素的数组。

答案 1 :(得分:0)

我们有一个默认方法,用于将元素添加到数组中。

header = [1, 2, 3]

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

输出:

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