arrays - 查找 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!
解决方案
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
推荐阅读
- c++ - 如何使用指针存储值以及如何显示所有存储的值?
- javascript - 使用 ES 模块时是否暗示“使用严格”?
- javascript - 使用 moment.js 获取从月初到今天经过的天数
- typescript - class-transformer Exclude undefined properties
- javascript - Retrieve and group by object element in JS (JSON)
- angular - "Cannot instantiate cyclic dependency!" when importing "formBuilder" into a service
- java - I want to get date in given format but this gives me output as 2020-03-65 15:23 instead of 2020-03-05 15:23,what is wrong with the code?
- python - Display SQL results in Django Admin interface
- python - 仅打印匹配正则表达式 Pandas 的字符串部分
- php - Jquery自动完成功能不会自动完成PHP,Mysql数据