首页 > 解决方案 > 同时循环两个对象

问题描述

我想创建一个表如下,

<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.eachand @b.each

任何想法来帮助我。

标签: ruby-on-railsruby

解决方案


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

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

但是,这意味着@b应该有一个[]运算符,这是任何数组的情况,但可能不是链表的情况,具体取决于实现。

最好的方法是构建您的集合 (@a@b) 合并在一起,这样您就可以只迭代一个集合并获得两个值。


推荐阅读