代码之家  ›  专栏  ›  技术社区  ›  steenslag

如何在Ruby中迭代多个可枚举项?

  •  4
  • steenslag  · 技术社区  · 14 年前

    我知道可以压缩两个数组,并且可以用每个数组迭代结果。但是,对于未知数量的可枚举项,您如何处理它呢? 比如说

    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 回复  |  直到 14 年前
        1
  •  9
  •   glenn mcdonald    14 年前
    players.transpose.map {|a| a.join(" ")}
    
        2
  •  4
  •   sepp2k    14 年前
    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