查找Ruby数组的字符串索引[重复]
Posted
技术标签:
【中文标题】查找Ruby数组的字符串索引[重复]【英文标题】:Find a string index of a Ruby array [duplicate] 【发布时间】:2021-12-10 00:08:03 【问题描述】:例如,考虑下面的列表:
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
我哪里错了?谢谢你们。我在这里学到了很多东西!
【问题讨论】:
***.com/questions/13659696/… 这能回答你的问题吗? ***.com/q/45499614/6045800 我的问题是我需要实现采用 array 并查找可以找到目标字符的所有位置的代码。但是,此代码将是一个能够在其他几个列表中找到这些索引的函数,并且每个列表都希望返回不同的元素等(这是一个学习挑战)。 我编辑了这个问题,因为我认为我的疑问不是很清楚。 【参考方案1】:
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]
更新(之二)
我的问题是我需要实现代码,该代码需要一个数组并查找可以找到目标字符的所有位置。
如果你想在查找字符'z'
时选择'baz'
的索引,那么你可以在你的条件下使用String#include?
:
"baz".include? 'z' #=> true
但是,此代码将是一个函数,它将能够在其他几个列表中找到这些索引,并且每个列表都希望返回不同的元素,等等。
只需将前面的代码包装在一个函数中:
def myfunction arr, c
arr.each_index.select|i| arr[i].include? c
end
【讨论】:
我编辑了这个问题,因为我认为我的疑问不是很清楚。 就是这样!好刺激哈哈 非常感谢!我永远不会忘记这个 .include @Edd 不客气 ;-) 顺便说一句,如果它是你想要的,你可以接受我的回答。以上是关于查找Ruby数组的字符串索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章