首页 > 解决方案 > 查找 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} 

Where am I going wrong? Thank you all. I'm learning a lot here!

标签: arraysrubyindexing

解决方案


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]

更新(二)

我的问题是我需要实现采用数组并查找可以找到目标字符的所有位置的代码。

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

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

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

只需将前面的代码包装在一个函数中:

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

推荐阅读