【问题标题】:We have 'index' and 'rindex', we have 'find' but no 'rfind'我们有'index'和'rindex',我们有'find'但没有'rfind'
【发布时间】:2017-08-23 11:09:26
【问题描述】:

当应用于数组时,index(通过块调用)返回满足条件的第一个元素的索引,rindex 返回最后一个元素的索引。同样,我们有find 来返回元素本身。但是,没有对应的rfind 会返回满足条件的数组的最后一个元素。

Ruby 是否已经有实现此目的的方法?

在猴子修补Array 类之前,我想确定一下。

【问题讨论】:

  • 我们在 Ruby 中可能有 rindex,因为 Perl 有 rindex

标签: ruby


【解决方案1】:

你可以这样做:

enum = [1, 2, 3, 4].reverse_each
# => #<Enumerator: [1, 2, 3, 4]:reverse_each>

enum.find(&:odd?)
# => 3

请注意,与使用 Array#reverse 不同,它不会创建立即丢弃的时间数组。

立即做:

[1, 2, 3, 4].reverse_each.find(&:odd?)
# => 3

换句话说,我们有reverse_each.find 而不是rfind;没什么大不了的。

【讨论】:

  • @GaganGami 写在我的回答里。
猜你喜欢
  • 1970-01-01
  • 2011-09-15
  • 2021-08-17
  • 2016-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多