предварительно ожидать каждого элемента в массиве в Ruby - PullRequest
5 голосов
/ 02 декабря 2011

Есть ли способ предварять каждый элемент массива чем-то.

Например:

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 ]

16 голосов
/ 02 декабря 2011

Вы хотите использовать карту:

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

классический чехол для этого метода. Этот метод также может принимать массив, содержащий элементы любого типа.

0 голосов
/ 12 декабря 2017

У нас есть метод по умолчанию для добавления элементов в массив.

header = [1, 2, 3]

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

Выход:

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