Pre-pend for each element in an array in Ruby

Is there a way to add something to each element of the array.

eg:

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] 
+4
source share
2 answers

Do you want to use the map:

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

classic case for this method. This method can also accept an array containing elements of any type.

+15
source

We have a default method for adding elements to an array.

 header = [1, 2, 3] header.map { |h| h.to_s.prepend("filename.")}} 

Output:

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

Source: https://habr.com/ru/post/1384242/


All Articles