同时循环两个对象

时间:2019-03-15 10:05:00

标签: ruby-on-rails ruby

我要创建一个表,如下所示,

<table>
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Independent Column</th>
</tr>
<tr>
<td>a</td>
<td>1</td>
<td>i1</td>
</tr>
<tr>
<td>b</td>
<td>2</td>
<td>i2</td>
</tr>
<tr>
<td>c</td>
<td>3</td>
<td>i3</td>
</tr>
<tr>
<td></td>
<td></td>
<td>i4</td>
</tr>
<tr>
<td></td>
<td></td>
<td>i5</td>
</tr>


</table>

其中第1列和第2列是来自变量@a的数据,而Independent Column具有来自@b的数据。我希望它们出现在同一张表中,所以我不能将它们分别循环为@a.each@b.each

有什么办法可以帮助我。

2 个答案:

答案 0 :(得分:1)

您可以在跟踪索引的同时遍历第一个,并从第二个获取值:

@a.each_with_index do |a, index|
  @b[index] # may be nil
end

但是,这意味着@b应该具有[]运算符,这在任何数组中都是如此,但在链表中可能并非如此,具体取决于实现方式。

最好的方法是将您的集合(@a@b)合并在一起,以便您只能迭代一个集合并获得两个值。

答案 1 :(得分:0)

您可以使用Array#zip

@a.zip(@b).each do |a, b|
end