Ruby: Как присоединиться к элементам массива вместе с префиксом?
У меня есть такой массив:
["marblecake", "also", "the", 1337]
Я хотел бы вернуть строку, содержащую каждый элемент массива, префикс которого задан некоторой указанной строкой, а затем соединить другую указанную строку. Например,
["marblecake", "also", "the", 1337].join_with_prefix("%", "__")
должно привести к
# => %marblecake__%also__%the__%1337
Как я могу это сделать?
Ответы
Ответ 1
Если ваш массив находится в a
, то этот однострочный файл сделает это
a.map { |k| "%#{k}" }.join("_")
Вы можете легко поместить это в свою собственную функцию - даже добавьте его в класс Array
, чтобы вы могли вызвать его в массиве, например, в вашем примере.
Обратите внимание, что '!' версия карты (map!
) изменит массив на месте - возможно, не ваше намерение.
Ответ 2
Хотя это очень старый вопрос, я бы хотел добавить это:
"%" + a.join("__%")
Ответ 3
В соответствии с приведенным выше предложением:
class Array
def join_with_prefix(prefix,separator)
self.collect {|e| prefix.to_s + e }.join(separator)
end
end
p ['ab','cd','ef'].join_with_prefix('%','__')
=> "%ab__%cd__%ef"
Ответ 4
Я искал решение этого сегодня. Я нашел этот вопрос. Это было мое решение.
array = ["marblecake", "also", "the", 1337];
arrayString = ''
array.each{|x| arrayString += "%" + x + "__"}