Heim > Fragen und Antworten > Hauptteil
Wie stellt js fest, dass alle Elemente eines Arrays gleich sind?
phpcn_u15822017-05-19 10:44:28
判断全相等价于判断其中一个不等、
function isAllEqual(array){
if(array.length>0){
return !array.some(function(value,index){
return value !== array[0];
});
}else{
return true;
}
}
phpcn_u15822017-05-19 10:44:28
题主并没有说是简单数组;如果数组元素有Object等等,那上面的答案基本都挂了。然后这个问题其实就变成了如何判断两个Object相等,然后又涉及递归……总之并没有那么简单,爪机码字就不多说了
给我你的怀抱2017-05-19 10:44:28
function compare(array1, array2)
{
(array1.length == array2.length) && array1.every(function(element, index) {
return element === array2[index];
})
}
漂亮男人2017-05-19 10:44:28
function test (arr) {
return arr.reduce((o, item) => (o.result = o.result && item === o.prev, o.prev = item, o), { result: true, prev: arr[0] }).result
}
曾经蜡笔没有小新2017-05-19 10:44:28
这不是一个循环就能解决的事?
var equals=function(arr){
var bool=true;
for(var i=1,len=arr.length;i<len;i++){
if(arr[i]!==arr[0]){bool=false}
}
return bool
}
大家讲道理2017-05-19 10:44:28
要考虑对象的话可以参考Lodash的isEqual
只考虑简单类型:
var arr = [/*elements*/];
var isAllEqual = new Set(arr).size === 1;