我经常想对数组X执行一个动作,然后返回除该数字之外的结果.我通常写的代码如下:
def other_participants output =[] NUMBER_COMPARED.times do output << Participant.new(all_friends.shuffle.pop,self) end output end
有没有更清洁的方法来做到这一点?
解决方法
听起来像你可以使用map / collect(它们是Enumerable的同义词).它返回一个数组,内容是通过map / collect返回每次迭代.
def other_participants NUMBER_COMPARED.times.collect do Participant.new(all_friends.shuffle.pop,self) end end
你不需要另外一个变量或一个明确的return语句.
http://www.ruby-doc.org/core/Enumerable.html#method-i-collect