我们有索引'和' rindex',我们已经找到了'但没有' rfind'

时间:2017-08-23 11:09:27

标签: ruby

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

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

在修补Array课程之前,我想确定一下。

1 个答案:

答案 0 :(得分:4)

你可以这样做:

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;没什么大不了的。