2012-05-20 13 views
11

Jaki jest szybki sposób sprawdzenia, czy wszystkie elementy przeliczalne spełniają pewien warunek? Chyba logicznie byłoby tak: „Czy wszystkie liczby całkowite nieparzyste”Zwraca true tylko wtedy, gdy wszystkie wartości są prawdziwe w Ruby

elements = [e1, e2, e3, ...] 
return (condition on e1) && (condition on e2) && (condition on e3) && ... 

Na przykład, gdybym miał tablicę liczb całkowitych i chciałem odpowiedzieć na pytanie

Zawsze mogę powtórzyć każdą wartość, sprawdzić, czy jest to prawda, a następnie zwrócić wartość false, gdy jeden z nich zwraca wartość false, ale czy istnieje lepszy sposób, aby to zrobić?

Odpowiedz

17

Możesz użyć funkcji all? z wymieszanego przelicznika.

elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 
return elements.all? { |elem| elem % 2 != 0 } 

Albo, jak zauważył w komentarzach, można również użyć odd? jeśli szukasz specificially dla wartości nieparzystych. ?

elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 
return elements.all?(&:odd?) 
+5

może faktycznie wystarczy zadzwonić '' nieparzyste od liczby zamiast korzystania modulo, co oznacza, że ​​można zrobić po prostu 'elements.all? (&: Dziwne?)'. –

Powiązane problemy