是否有 Ruby 习惯用法用于在条件为真时从数组中弹出项目并返回集合?
即,
# Would pop all negative numbers from the end of 'array' and place them into 'result'.
result = array.pop {|i| i < 0}
据我所知,上面的内容不存在。
我正在使用
result = []
while array.last < 0 do
result << array.pop
end
最佳答案
也许您正在寻找take_while
?
array = [-1, -2, 0, 34, 42, -8, -4]
result = array.reverse.take_while { |x| x < 0 }
result
将是 [-8, -4]
。
要返回原始结果,您可以改用 drop_while
。
result = array.reverse.drop_while { |x| x < 0 }.reverse
在这种情况下,result
将是 [-1, -2, 0, 34, 42]
。
关于ruby - 是否有用于在条件为真时从数组中弹出项目的 ruby 习惯用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415035/