如何遍历子数组

时间:2018-07-12 14:57:30

标签: arrays ruby

我有一个像这样的子数组

[["a", "b", "c"], ["d", "e", "f"], ["g", "h", nil]]

如何对此进行迭代以创建一个html表,其子数组是该表的列,如下所示?

a d g
b e h
c f  

3 个答案:

答案 0 :(得分:4)

这是您的幸运日,红宝石为您准备了Array#transpose

ary = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", nil]]

ary.transpose.each {|a| p a }
# >> ["a", "d", "g"]
# >> ["b", "e", "h"]
# >> ["c", "f", nil]

答案 1 :(得分:2)

我认为这可以满足您的要求

zipper = array.shift
puts zipper.zip(*array).map { |sub_array| sub_array.join(' ') }

因此,您获取数组的第一个元素并分配给变量(在这种情况下为zipper)。

然后,您将zip的其他参数array.shift.zip(*array) 加入其中,并使用空格作为分隔符将它们连接起来。

或者,一行:

Stack Overflow

将其打印到控制台后,将获得所需的输出。

答案 2 :(得分:0)

按照给定的描述,似乎以下提到的解决方案可以工作:

array.each do |f|
    <tr> # this will be row 
    f.each do |g|
       <th>g</th> # this will be column
    end
    </tr>
end