根据块条件返回true,是否有内置的
方法从数组中
删除值,并返回被
删除的值?
这是我想要做的简化版本,但似乎有一个更好的方法:
array = [1,2,3,4,5,6,7,8,9,10]
index = array.index {|v| v == 5} # returns index if block is true
value = array.delete_at(index) # deletes and returns element at index
值为5
您无法更新阵列,并返回一组不同的值,这些值将被
删除.您可以使用delete_if
删除值并捕获由块中逻辑
删除的值:
reject = []
=> []
content = [1,9]
=> [1,9]
content.delete_if {|v| reject << v if v > 5}
=> [1,5]
reject
=> [6,9]
content
=> [1,5]
原文链接:https://www.f2er.com/ruby/273625.html