2016-05-02 376 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