我有一个像这样的子数组
[["a", "b", "c"], ["d", "e", "f"], ["g", "h", nil]]
如何对此进行迭代以创建一个html表,其子数组是该表的列,如下所示?
a d g
b e h
c f
答案 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