arrays - 如何在数组中找到与条件匹配的元素的索引并从数组中的特定点开始搜索?

标签 arrays ruby indexof

我正在使用 Ruby 2.4。我知道如何在匹配条件的元素数组中找到所有索引 ...

arr.each_index.select{|i| arr[i] == 'x'}

但是如何从数组中的特定位置开始找到与条件匹配的第一个元素的索引?那么,如果我想查找在索引 = 2 处或之后只有一个字符的字符串怎么办? (如果 tehre 少于 2 个元素,该操作可以返回 nil)。例如,如果我有

["abc", "d", "efg", "h", "abcde"]

该操作将返回“3”,因为元素“h”位于位置 3,只有一个字符并且在索引 2 处或之后。

最佳答案

使用 select将返回 block 返回 true 的所有值,例如:

p arr = ["abc", "d", "efg", "h", "abcde", "k"]
# => ["abc", "d", "efg", "h", "abcde", "k"]
p arr.each_index.select{|i| i >= 2 and arr[i].length == 1}
# => [3, 5]

改为使用 detect如果您只想返回 block 返回 true 的第一个值:

p arr = ["abc", "d", "efg", "h", "abcde", "k"]
# => ["abc", "d", "efg", "h", "abcde", "k"]
p arr.each_index.detect{|i| i >= 2 and arr[i].length == 1}
# => 3

关于arrays - 如何在数组中找到与条件匹配的元素的索引并从数组中的特定点开始搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309757/

相关文章:

c - 我怎么在这里错误地使用 malloc ?

javascript - Angular Controller 阵列错误

ruby - 使用 WebFinger 和 OpenID 登录

ruby - 我应该打开类的实例变量只是为了测试验证吗?

css - 如何在 rspec (Rails 4/rspec3) 上测试文件大小

arrays - Swift:标签不显示

php - 用数组php中的空值替换空字符串

c# - 数组中值的随机索引

javascript - 如何在 JQuery 中使用 IndexOf

c# - Windows 8 C# GridView e.ClickedItem