例:
my_array = ['2823BII','4A','76B','10J']
[使用方法神奇delete_if_doesnt_contain()]
my_array.map! do |elements|
elements.delete_if_doesnt_contain('A')
end
我希望这样的设置my_array = ['4A']
即使我能遍历数组,只是返回一个包含该元素的索引“A”我会很高兴。谢谢你的帮助!
感谢下面的答案,但一个问题。
other_array = ['4']
my_var = other_array.to_s
my_array.select!{|x| x.include?(my_var)}
这不是为我工作。我在想什么?事情发生时,我转换的阵列为一个字符串?
非常容易使用#select
:
my_array = ['2823BII','4A','76B','10J']
my_array.select { |str| str.include?('A') }
# => ["4A"]
或者,如果你想修改源阵列,使用该bang version of select: -
my_array.select! { |str| str.include?('A') }
奥雅纳的答案是正确的。
然而,具体回答你的最后一个问题,“遍历数组,只是返回一个包含‘A’的元素的索引”中,“指数”方法返回一个匹配元素的索引:
my_array.index {|x| x.include?('A') }
该grep方法是短了很多
my_array = ['2823BII','4A','76B','10J']
my_array.grep /A/