我有一个数组,我想迭代并删除一些元素.这不管用:
a = [1, 2, 3, 4, 5]
a.each do |x|
next if x < 3
a.delete x
# do something with x
end
a #=> [1, 2, 4]
我希望a
变成[1, 2]
.我怎样才能避开这件事?
我有一个数组,我想迭代并删除一些元素.这不管用:
a = [1, 2, 3, 4, 5]
a.each do |x|
next if x < 3
a.delete x
# do something with x
end
a #=> [1, 2, 4]
我希望a
变成[1, 2]
.我怎样才能避开这件事?
a.delete_if { |x| x >= 3 }
参见方法文档here
更新:
可以在块中处理x:
a.delete_if do |element|
if element >= 3
do_something_with(element)
true # Make sure the if statement returns true, so it gets marked for deletion
end
end