Wie stellt js fest, dass alle Elemente eines Arrays gleich sind?
判断全相等价于判断其中一个不等、
function isAllEqual(array){ if(array.length>0){ return !array.some(function(value,index){ return value !== array[0]; }); }else{ return true; } }
题主并没有说是简单数组;如果数组元素有Object等等,那上面的答案基本都挂了。然后这个问题其实就变成了如何判断两个Object相等,然后又涉及递归……总之并没有那么简单,爪机码字就不多说了
function compare(array1, array2) { (array1.length == array2.length) && array1.every(function(element, index) { return element === array2[index]; }) }
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 }
这不是一个循环就能解决的事?
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 }
要考虑对象的话可以参考Lodash的isEqual
只考虑简单类型:
var arr = [/*elements*/]; var isAllEqual = new Set(arr).size === 1;
要不我抖个机灵?
判断全相等价于判断其中一个不等、
题主并没有说是简单数组;如果数组元素有Object等等,那上面的答案基本都挂了。然后这个问题其实就变成了如何判断两个Object相等,然后又涉及递归……总之并没有那么简单,爪机码字就不多说了
这不是一个循环就能解决的事?
要考虑对象的话可以参考Lodash的isEqual
只考虑简单类型:
要不我抖个机灵?