2012-05-20 10 views
11

列挙可能な要素のすべての要素が特定の条件を満たすかどうかを確認する簡単な方法はありますか?私はそれのようになり、論理的に推測:「?奇妙なすべての整数である」私は整数の配列を持っていた、と私は質問に答えるしたい場合、例えばRubyですべての値がtrueと評価された場合にのみtrueを返します

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

私はいつも各値を繰り返し、真であるかどうかをチェックし、そのうちの1つがfalseを返すときにfalseを返しますが、もっと良い方法がありますか?

答えて

17

Enumerable mix-inのall?関数を使用できます。

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

あるいは、コメントで指摘したように、あなたが奇数の値についてspecificially探しているなら、あなたはまた、odd?を使用することができます。

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

実際には、モジュロを使用する代わりに、数字の上で 'odd? 'を呼び出すことができます。つまり、単に' elements.all?(&:odd?) 'を行うことができます。 –

関連する問題