Ruby的“每个”方法不会遍历数组中的所有项目?

前端之家收集整理的这篇文章主要介绍了Ruby的“每个”方法不会遍历数组中的所有项目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试以下代码
a = [1,2,3,4]  
a.each do  
  puts "Removing #{a.last}"  
  a.pop  
end

但是没有弹出所有四个数字我只得到第一个3.确实,做一些像放置a.length的东西返回1并且放置它显示元素“1”仍然存在.

我该如何正确使用该方法
(我使用的是Ruby 2.0).

解决方法

我怀疑这种情况正在发生,因为您在修改列表时迭代列表的元素.

请尝试以下方法

a = [1,4]
until a.empty? do
  puts "Removing #{a.last}"
  a.pop
end

猜你在找的Ruby相关文章