我正在迭代Object van中的数组。我试图将数组的元素弹出到另一个对象数组。见下文。
@van.bikes.each { @garage<<( @van.removebike )}
def removebike
@bikes.pop
end
当我这样做时,车库中产生的数组缺少元素和/或重复元素。
答案 0 :(得分:0)
这样做的原因是当ruby在数组上迭代时,它会根据原始数组大小设置迭代次数。当您从该数组中弹出一个元素时,大小会发生变化,因此迭代无法正常工作。
您可以改为使用
@van.bikes.count.times { @garage<<( @van.removebike )}
答案 1 :(得分:0)
你也可以尝试这个..
@garage = []
@van.bikes.each{|bike| @garage << bike}