2016-05-02 330 views
-1

我试图找出一个数组,如果任何阵列keywords中的话:检查字符串包含字符串

keywords = Array['hello', 'hi', 'home'] 

出现在split

split = work.split(' ') 

并为每个keyword出现在split,做些什么。

我有这样的代码:

for keywords in splitDescription 
    score += 2 
end 

的代码只是给了我2+为split每一个字,但我只想2+每个keywords出现在split。在阵列

+1

有几件事情关于编写惯用的Ruby:使用'x = [1,2,3]',而不是'x = Array [1,2,3]'(这里'Array'是多余的)来创建数组,并使用'keywords.each do | keyword |'而不是'关键字在关键字中'。 – meagar

+0

什么是“工作”?你是什​​么意思,它给你2+? – sawa

+0

“工作”是存储一个字符串和2+我的意思是分数增加2 –

回答

4

使用交集(Array#&):

(splitDescription & keywords).each do |found_keyword| 
    # something 
end 

如果你知道可能有一些话重复,你想每次出现迭代:

splitDescription.select { |word| keywords.include?(word) }.each do |word| 
    # something 
end