gpt4 book ai didi

ruby - 通过数组的简单 Ruby 循环不会完全迭代

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:10 25 4
gpt4 key购买 nike

所以我以为我明白了这一点,但我没有得到我预期的输出,所以显然我不明白。

在 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

如何让这个循环遍历每个项目并将其删除?谢谢!

最佳答案

在遍历集合时不要改变集合,除非您知道自己在做什么

为了您的最终目的,

a = [1,2,3,4]
a.reject!{|e| e < 3 }

关于ruby - 通过数组的简单 Ruby 循环不会完全迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com