2012-10-10 6 views
26

可能性の重複を満たしている場合:
check if value exists in array in Ruby配列の任意の要素が条件

私は文字列の配列をループし、任意の文字列が含まれている場合はtrueを返し、このメソッドを持っています文字列 'dog'。それは動作していますが、複数のreturn文が乱雑に見えます。これを行うより雄弁な方法がありますか?

def has_dog?(acct) 
    [acct.title, acct.description, acct.tag].each do |text| 
    return true if text.include?("dog") 
    end 
    return false 
end 
+2

他の質問では、配列要素 '==" dog "がその文字列を含む配列要素のいずれとも異なるかどうかを調べるだけです。 –

答えて

46

使用Enumerable#any?

def has_dog?(acct) 
    [acct.title, acct.description, acct.tag].any? { |text| text.include? "dog" } 
end 

それはtrue/falseを返します。

+1

ああ、意味的には 'detect'よりも優れています。 – meagar

関連する問題