我需要搜索数组以找出哪些对象包含特定字符串。该方法必须采用两个输入。
这是一个单输入法,可以返回所有带有t
字母的对象:
def my_array_finding_method(source)
source.grep(/t/)
end
my_array_finding_method(array)
这不起作用:
def my_array_finding_method(source, thing_to_find)
source.grep(/thing_to_find/)
end
my_array_finding_method(array, "t")
我必须修改第二位代码才能工作。我怎么能这样做?
答案 0 :(得分:2)
您必须interpolate变量名称。否则,它只被解释为纯文本。
source.grep(/#{thing_to_find}/)
答案 1 :(得分:0)
您不必使用正则表达式:
def my_array_finding_method(source, thing_to_find)
source.select { |s| s.include?(thing_to_find) }
end
arr = %w| It's true that cats have nine lives. |
#=> ["It's", "true", "that", "cats", "have", "nine", "lives."]
my_array_finding_method(array, "t")
#=> ["It's", "true", "that", "cats"]