Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么我在迭代数组中得到错误的结果?_Ruby_Arrays - Fatal编程技术网

Ruby 为什么我在迭代数组中得到错误的结果?

Ruby 为什么我在迭代数组中得到错误的结果?,ruby,arrays,Ruby,Arrays,我在一个对象中的数组上迭代。我试图将数组的元素弹出到另一个对象数组中。见下文 @van.bikes.each { @garage<<( @van.removebike )} def removebike @bikes.pop end @van.bikes.each{@garage这样做的原因是,当ruby在数组上迭代时,它会根据原始数组大小设置迭代次数。当您从该数组中弹出元素时,大小会发生变化,因此迭代无法正常工作 你可以用 @van.bikes.count.time

我在一个对象中的数组上迭代。我试图将数组的元素弹出到另一个对象数组中。见下文

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

def removebike
   @bikes.pop   
end

@van.bikes.each{@garage这样做的原因是,当ruby在数组上迭代时,它会根据原始数组大小设置迭代次数。当您从该数组中弹出元素时,大小会发生变化,因此迭代无法正常工作

你可以用

@van.bikes.count.times { @garage<<( @van.removebike )} 
@van.bikes.count.times{@garage你也可以试试这个

@garage = []
@van.bikes.each{|bike| @garage << bike}
@garage=[]

@van.bikes.each{| bike |@garage或just
@garage+=@van.bikes;@van.bikes=[]
:)您还可以提供类结构吗?