查找Ruby数组的字符串索引



示例,考虑以下列表:

list = ['k', 'bac', 'a', 'a', 'zBy', 'yUk', 'A', 'u', 'a'] 

我在这个列表中搜索'a'的索引。

因此,期望的回报将是:

>>[1, 2, 3, 8] 

然而,我只是得到[2,3,8]的返回,因为我的函数不考虑字符串'bac'中的字符。

我的念头:

list.each_index.select{|i| list[i] == value} 

我哪里错了?谢谢大家。我在这里学到了很多东西!

list = ['k', 'z', 't', 'c', 'z', 'y', 'x', 'xay']我想找到这个列表中"z"元素的索引,它将返回如下:#=> [1,4]

您可以使用each_index然后select遍历数组的索引,以满足您的条件:

list.each_index.select{|i| list[i] == ?z} #=> [1, 4]

更新(bis)

我的问题是,我需要实现的代码接受一个数组,并寻找所有的位置,其中一个目标字符可以找到。

如果您想在查找字符'z'时选择'baz'的索引,那么您可以在条件中使用String#include?:

"baz".include? 'z' #=> true

然而,这段代码将是一个能够在其他几个列表中找到这些索引的函数,每个列表都希望返回不同的元素,等等。

将前面的代码封装在一个函数中:

def myfunction arr, c
arr.each_index.select{|i| arr[i].include? c}
end

最新更新