0

我正在对 Object van 中的数组进行迭代。我正在尝试将数组的元素弹出到另一个对象数组中。见下文。

@van.bikes.each { @garage<<( @van.removebike )}

def removebike
   @bikes.pop   
end

当我这样做时,车库中的结果数组缺少元素和/或重复元素。

4

2 回答 2

0

你也可以试试这个。。

@garage = []
@van.bikes.each{|bike| @garage << bike}
于 2013-03-09T12:18:18.370 回答
0

这样做的原因是,当 ruby​​ 对数组进行迭代时,它会根据原始数组大小设置迭代次数。当您从该数组中弹出一个元素时,大小会发生变化,因此迭代无法正常工作。

你可以改用,

@van.bikes.count.times { @garage<<( @van.removebike )} 
于 2013-03-09T12:03:30.347 回答