Подтвердить что ты не робот

Ruby: Как присоединиться к элементам массива вместе с префиксом?

У меня есть такой массив:

["marblecake", "also", "the", 1337]

Я хотел бы вернуть строку, содержащую каждый элемент массива, префикс которого задан некоторой указанной строкой, а затем соединить другую указанную строку. Например,

["marblecake", "also", "the", 1337].join_with_prefix("%", "__")

должно привести к

# => %marblecake__%also__%the__%1337

Как я могу это сделать?

4b9b3361

Ответ 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 + "__"}