如何在ruby中迭代多个枚举?

时间:2010-04-10 22:25:28

标签: ruby enumerable

我知道可以压缩两个数组,并且可以使用#each迭代结果。但是你怎么用未知数量的枚举来做呢? 我们说

anand = %w(1-0 0.5-0.5 0.5-0.5 1.0)
carlsen = %w(0-1 0.5-0.5 0.5-0.5 1.0)
kramnik = %w(0.5-0.5 0.5-0.5 0.5-0.5 1.0)
players= [anand, carlsen, kramnik]
#something smart

players.each{|round|puts round} #first line should be  "1-0 0-1 0.5-0.5" 

2 个答案:

答案 0 :(得分:9)

players.transpose.map {|a| a.join(" ")}

答案 1 :(得分:4)

anand.zip(carlsen, kramnik) do |round| puts round.join(" ") end

这将打印:

1-0 0-1 0.5-0.5
0.5-0.5 0.5-0.5 0.5-0.5
0.5-0.5 0.5-0.5 0.5-0.5
1.0 1.0 1.0