首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby数组delete if和get delete对象

Ruby数组delete if和get delete对象
EN

Stack Overflow用户
提问于 2016-07-12 03:14:28
回答 0查看 762关注 0票数 2

所以我有这样的情况,我需要有条件地从数组中删除一些东西,这意味着我想要遍历数组中的项并进行测试,然后删除通过测试的项,然后我想要拿回被删除的项。如果我排除了条件方面,那么Array#delete基本上会做我想做的事情--返回已删除的项,但不能有条件地删除。另一方面,delete_if有条件地删除该项,但在数组中返回其余项。

在本问题中,假设使用以下类:

代码语言:javascript
复制
class Foo
  def test?
    #returns true or false
  end
end

通过执行以下操作,我可以轻松地重现此行为:

代码语言:javascript
复制
index = my_array.index {|a| a.test?}
item_to_delete = my_array[index]
my_array.delete item_to_delete

但我希望能找到这样的东西:

代码语言:javascript
复制
deleted_item = my_array.delete_if_and_return_deleted {|a| a.test?}

我对必须多次遍历数组才能做到这一点并不感到兴奋:/首先查找目标的索引,其次获取目标,第三次删除目标。尼克。

有什么想法或建议吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38314478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档