2011-12-02 70 views
4

是否有一種方法可以用某種方法預先存儲數組中的每個元素。pre-pend Ruby中的數組中的每個元素

如:

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] 

回答

15

您要使用地圖:

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

經典案例這種方法。該方法也可以採用包含任何類型元素的數組。

+0

嗯,你說得對。我應該先在控制檯上測試我的代碼 - 映射是正確的方法。 +1 – jefflunt

0

我們有一個默認的方法用於將元素預先添加到數組中。

header = [1, 2, 3] 

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

輸出:

["filename.1", "filename.2", "filename.3"] 
相關問題