Ruby - 如果数组中的元素包含某个字符,则返回关联的元素

que*_*eck 1 ruby arrays contains character elements

例:

my_array = ['2823BII','4A','76B','10J']
Run Code Online (Sandbox Code Playgroud)

[使用神奇的方法delete_if_doesnt_contain()]

my_array.map! do |elements|
    elements.delete_if_doesnt_contain('A')
end
Run Code Online (Sandbox Code Playgroud)

我希望这一点 my_array = ['4A']

即使我可以遍历数组并只返回包含'A'的元素的索引,我也会很开心.谢谢你的帮助!

感谢下面的答案,但还有一个问题.

other_array = ['4']
my_var = other_array.to_s
my_array.select!{|x| x.include?(my_var)}
Run Code Online (Sandbox Code Playgroud)

这不适合我.我错过了什么?将数组转换为字符串时会发生什么?

Aru*_*hit 5

使用非常简单#select:

my_array = ['2823BII','4A','76B','10J']
my_array.select { |str| str.include?('A') }
# => ["4A"]
Run Code Online (Sandbox Code Playgroud)

或者,如果要修改源数组,请使用选择爆炸版本: -

my_array.select! { |str| str.include?('A') }
Run Code Online (Sandbox Code Playgroud)