【发布时间】:2014-04-16 23:58:00
【问题描述】:
所以我以为我理解了这一点,但我没有得到预期的输出,所以显然我不明白。
在 Ruby (2.0.0) 中
a = [1,2,3,4]
a.each do |e|
a.delete(e)
end
a = [2,4]
它似乎没有循环遍历数组中的每个项目。但是,当我简单地输出项目时,它会遍历每个项目。 a.delete(e) 的某些机制会影响迭代。
a = [1,2,3,4]
a.each do |e|
puts e
end
=> 1
=> 2
=> 3
=> 4
最终,我想在循环中放入一个条件,例如:
a = [1,2,3,4]
a.each do |e|
if e < 3
a.delete(e)
end
end
我怎样才能让这个循环遍历每个项目并删除它?谢谢!
【问题讨论】:
-
你有什么问题?
-
澄清问题。
-
以后,在选择答案之前,请考虑推迟一段时间。一个快速的选择(在这里,发布后仅 15 分钟!)可能会阻止其他可能更好的答案,而且,imo 不尊重那些仍在准备答案的人。
-
感谢测试版。我已取消选择答案,并会在重新接受之前给它一些时间。
-
我的评论与@sawa的回答无关,我觉得还不错,得到了我的一票。