我可以生成几行代码,但是我想知道是否有一个很好的干净Rubyesque方式.如果我没有明确的,就是我正在寻找的是一个数组的方法,如果给定的(说),这将返回true [3,3,3,3,3]或["rabbits","rabbits","rabbits"]但将返回false用[1,2,3,4,5]或["rabbits","rabbits","hares"].
谢谢
sep*_*p2k 76
Enumerable#all?如果给定块对集合中的所有元素返回true,则可以使用which返回true.
array.all? {|x| x == array[0]}
Run Code Online (Sandbox Code Playgroud)
(如果数组为空,则永远不会调用该块,因此这样做array[0]是安全的.)
Fra*_*oto 63
class Array
def same_values?
self.uniq.length == 1
end
end
[1, 1, 1, 1].same_values?
[1, 2, 3, 4].same_values?
Run Code Online (Sandbox Code Playgroud)
这个如何?它为空数组返回false,您可以将其更改为<= 1,在这种情况下它将返回true.根据您的需要而定.
Car*_*and 10
我也喜欢最好的答案,简短而甜蜜.如果所有元素都来自同一个Enumerable类,例如Numeric或String,则可以使用
def all_equal?(array) array.max == array.min end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22531 次 |
| 最近记录: |