2012-10-10 15 views
26

Powiel możliwe:
check if value exists in array in RubySprawdzenie, czy każdy element tablicy spełnia warunek

mam to metoda, która pętle za pośrednictwem tablicy ciągów i zwraca true jeśli ciąg zawiera ciąg "pies". Działa, ale wiele oświadczeń zwrotnych wygląda nieładnie. Czy jest to bardziej wymowny sposób na zrobienie tego?

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

Myślę, że inne pytanie tylko sprawdza, czy jeden z elementów tablicy "==" pies "', który jest odrębny od dowolnego elementu tablicy zawierającej ten ciąg. –

Odpowiedz

46

Zastosowanie Enumerable#any?

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

Powróci true/false.

+1

Ach, tak, semantycznie lepiej niż "wykryć". – meagar

Powiązane problemy