I want to check if any elements in this array words = ["foo", "bar", "spooky", "rick james"]
are substrings of the phrase sentence = "something spooky this way comes"
.
Return true if there is any match, false if not.
My current solution (works but probably inefficient, I'm still learning Ruby):
is_there_a_substring = false
words.each do |word|
if sentence.includes?(word)
is_there_a_substring = true
break
end
end
return is_there_a_substring
Your solution is efficient, it's just not as expressive as Ruby allows you to be. Ruby provides the Enumerable#any?
method to express what you are doing with that loop:
words.any? { |word| sentence.include?(word) }
Another option is to use a regular expression:
if Regexp.union(words) =~ sentence
# ...
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With