我正在上一个在线课程,它通常有一个非常简单的单行解决方案。一个问题指出,给定以下数组:
["emperor", "joshua", "abraham", "norton"]
我必须使用#inject
一个字符串来获取所有名称的单个字符串,每个名称都以字符串开头,如下所示:
"Emperor Joshua Abraham Norton"
虽然这可以很容易地用#map
and完成#join
,但这个特殊的练习只需要使用 #inject。我想出了这样的事情:
["emperor", "joshua", "abraham", "norton"].inject("") do |memo, word|
memo << word.capitalize << " "
end
这会给我:
"Emperor Joshua Abraham Norton "
其中字符串末尾的空格没有作为正确的解决方案传递。
- 我如何在最后没有空格的情况下实现这一点?
- 这甚至是正确的使用方式
#inject
,传递一个空字符串吗? - 我是否正确使用了
<<
组合字符串?