Использование #inject для объединения строк из массива

Я прохожу онлайн-урок, который обычно имеет очень простое однострочное решение. Проблема заключается в том, что при наличии следующего массива:

["emperor", "joshua", "abraham", "norton"]

Я должен использовать #inject, чтобы получить единую строку всех имен, соединенных вместе строкой, каждое имя которой ограничено начальным концом, например:

"Emperor Joshua Abraham Norton"

В то время как это можно легко сделать с помощью #mapи #join, это конкретное упражнение требует использования только #inject. Я придумал что-то вроде этого:

["emperor", "joshua", "abraham", "norton"].inject("") do |memo, word|
   memo << word.capitalize << " "
end

, что дало бы мне:

"Emperor Joshua Abraham Norton "

, где пробел в конце строки не считается правильным решением.

  • Как мне добиться этого без пробела в конце?
  • Это вообще правильный способ использовать #inject, передавая пустую строку?
  • Правильно ли я использую для объединения строк?

10
задан Andrew Grimm 15 March 2012 в 22:07
поделиться