gpt4 book ai didi

ruby-on-rails - Ruby:根据 block 查找条件删除并返回数组值

转载 作者:数据小太阳 更新时间:2023-10-29 06:32:12 25 4
gpt4 key购买 nike

是否有一种内置方法可以根据 block 条件返回 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

value 是 5

最佳答案

您无法就地更新数组并返回一组已删除的不同值。您可以使用 delete_if 执行以下操作以删除值并捕获 block 中逻辑删除的值:

reject = []
=> []
content = [1,2,3,4,5,6,7,8,9]
=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
content.delete_if {|v| reject << v if v > 5}
=> [1, 2, 3, 4, 5]
reject
=> [6, 7, 8, 9]
content
=> [1, 2, 3, 4, 5]

关于ruby-on-rails - Ruby:根据 block 查找条件删除并返回数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480329/

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