我希望Array#find_index { |item| block }
第一次在比赛后找到更多的比赛.如何搜索第二场比赛,第三场比赛等的索引?
换句话说,我想要相当于for 的pos
参数.然后我可以保持当前位置索引继续搜索.Regexp#match(str, pos)
Array#find_index
我无法使用,Enumerable#find_all
因为我可能会在调用之间修改数组(在这种情况下,我还会调整当前位置索引以反映修改).我不想复制部分数组,因为这会增加我的算法的计算复杂性.我想这样做而不复制数组:
new_pos = pos + array[pos..-1].find_index do |elem|
elem.matches_condition?
end
Run Code Online (Sandbox Code Playgroud)
以下是不同的问题.他们只询问数组中的第一个匹配,加上一个:
以下问题更接近,但仍然无法帮助我,因为我需要在继续下一个之前处理第一个匹配(这种方式也与修改冲突):