我找不到用于查找与条件匹配的数组的最后一个元素的方法。
这应该可以,但这似乎不是最好的方法:
array.reverse.find {condition}
array[array.rindex {condition}]
会期望像array.rfind {condition} ...
这样的东西答案 0 :(得分:1)
array.rindex(condition)
将给出最后一个匹配的元素索引号。
这将为您提供最后一个匹配元素
array[array.rindex(condition)]
答案 1 :(得分:0)
我认为 reduce 可以完成这项工作。
array.reduce { |accumulator, element| condition ? element : accumulator }
这样,返回的值将是分配给累加器的最后一个值。
请注意,累加器总是从可枚举的第一个元素开始,因此如果您想在没有元素满足条件的情况下返回 nil,则必须将其作为参数传递给 reduce,如下所示:< /p>
array.reduce(nil) { |accumulator, element| condition ? element : accumulator }