假设我有一个数组
array = [1,2,3,4,5,6,7,8,9]
现在,索引1和2的值会像这样改变
array[1] = 1
array[2] = 1
现在我有了
[1,1,1,4,5,6,7,8,9]
我想检查前三个索引是否都包含1
array[0..2] has same value?
如果前三个索引完全相同,则返回true。有没有办法呢?
答案 0 :(得分:4)
我能想到的最简单的方式:
array[0..2].uniq.size == 1
答案 1 :(得分:0)
您可以编写自己的方法:
array[ 0 ] == array[ 1 ] && array[ 1 ] == array[ 2 ]
答案 2 :(得分:0)
我能想到的最可读的方式是(如果3个月过去了,你回过头来想知道这段代码做了什么,这将回答它):
same_value = 1
a.first(3).all? { |number| number == same_value }
这是假设您知道same_value
将会是什么。
答案 3 :(得分:0)
array[0..2].uniq.size != array[0..2].size
这将检查数组中唯一元素的数量是否不等于元素总数。
在你的情况下
[1,1,1] => # elements = 3
[1,1,1] => # unique elements = 1
这两者不同。