0
Я woring на шаблоне .erb (для марионетки) с текстовым файлом, как это:Создание массива после конкатенации селективных элементов массива
ec2-23-22-59-32, mongoc, i-b8b44, instnum=0, Running
ec2-54-27-11-46, mongod, i-43f9f, instnum=1, Running
...
...
ec2-78-62-92-20, mongod, i-02fa4, instnum=8, Running
ec2-24-47-51-23, mongos, i-546c4, instnum=9, Running
, и я пытаюсь получить массив, как это из из него:
['mongoc-i-b8b44', 'mongod-i-43f9f', .... 'mongod-i-02fa4', 'mongos-i-546c4']
я могу сделать несколько вещей, как создать массив, принимая только 2-й и 3-й элементы:
a_type = []
IO.foreach(inFile) do |line|
a_type.push line.split(',')[1..2].map(&:strip)
end
a_type.join(',')
# => mongoc,i-b5b406dd,mongod,i-b6f9f1d5
или присоединиться к всем элементам массива, как это:
ar = ['sd', 'ser', 'wer']
ar.map! { |k| "#{k}" }.join('-')
# => "sd-ser-wer"
, но не может понять, как добиться результата, что я ищу. Любая помощь/указатель?
Я бы написал: 'open (inFile) .lines.map' – tokland
@Amit: Spot on! Не понял, что все будет так просто; Я думал о ракетной науке. Большое спасибо! – MacUsers
@tokland: Не могли бы вы объяснить, что является (функциональной) разницей между 'each_line.map' и' lines.map'? – MacUsers