我有一个字符串数组:
phrases = ["Have a good Thanksgiving", "Eat lots of food"]
我有另一个单词单词: words = ["eat", "food"]
如果字符串包含第二个数组中的所有单词,我想返回第一个数组中的条目.
所以,它应该看起来像这样:
phrases.select{ |x| x.include_all?(words) }
我是否应该创建include_all?函数来遍历words数组的每个成员并进行比较,或者是否有任何我缺少的内置方法?
Emi*_*ily 11
你实际上非常接近解决方案.
phrases.select do |phrase|
words.all?{ |word| phrase.include? word }
end
Run Code Online (Sandbox Code Playgroud)
该all?方法是对Enumerable的,如果该块评估为true集合中的每一项返回true.
根据您对"包含"这个词的短语的定义,您可能希望定义自己的include_all?方法或String确定匹配的方法.该include?方法区分大小写,不关心字边界.如果这些不是您的要求,您可以使用Regexp代替include?或定义自己的方法来包装该逻辑.
| 归档时间: |
|
| 查看次数: |
4713 次 |
| 最近记录: |