假设我有一个名为的数组teams.
我想计划matches为每一个team与所有其他team.
这几乎是我想要的,除了相同matches的添加两次:
teams.each do |red_team|
teams.each do |blue_team|
if red_team != blue_team
@planned_matches << Match.new(red_team, blue_team)
end
end
end
Run Code Online (Sandbox Code Playgroud)
怎么做?
在Ruby 1.8.7+中,您可以使用Array#组合:
teams = %w(A B C D)
matches = teams.combination(2).to_a
Run Code Online (Sandbox Code Playgroud)
在1.8.6中,您可以使用Facets执行相同的操作:
require 'facets/array/combination'
# Same code as above.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |