验证可枚举的所有元素是否满足特定条件的快速方法是什么?我想在逻辑上它会像:
elements = [e1, e2, e3, ...]
return (condition on e1) && (condition on e2) && (condition on e3) && ...
例如,如果我有一个整数数组,并且我想回答“所有整数都是奇数吗?”这个问题。
我总是可以遍历每个值,检查它是否为真,然后在其中一个返回假时返回假,但有更好的方法吗?
验证可枚举的所有元素是否满足特定条件的快速方法是什么?我想在逻辑上它会像:
elements = [e1, e2, e3, ...]
return (condition on e1) && (condition on e2) && (condition on e3) && ...
例如,如果我有一个整数数组,并且我想回答“所有整数都是奇数吗?”这个问题。
我总是可以遍历每个值,检查它是否为真,然后在其中一个返回假时返回假,但有更好的方法吗?
您可以使用all?
Enumerable mix-in 中的函数。
elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
return elements.all? { |elem| elem % 2 != 0 }
或者,正如评论中所指出的,odd?
如果您专门寻找奇数值,您也可以使用。
elements = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
return elements.all?(&:odd?)