搜索

首页  >  问答  >  正文

javascript - js怎么判断数组的所有元素全都相等

js怎么判断数组的所有元素全都相等

仅有的幸福仅有的幸福2840 天前889

全部回复(7)我来回复

  • phpcn_u1582

    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;
        }
    }

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-19 10:44:28

    题主并没有说是简单数组;如果数组元素有Object等等,那上面的答案基本都挂了。然后这个问题其实就变成了如何判断两个Object相等,然后又涉及递归……总之并没有那么简单,爪机码字就不多说了

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:44:28

    雷雷

    回复
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:44:28

    雷雷

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新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
             }

    回复
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:44:28

    要考虑对象的话可以参考Lodash的isEqual

    只考虑简单类型:

    var arr = [/*elements*/];
    
    var isAllEqual = new Set(arr).size === 1;

    回复
    0
  • 迷茫

    迷茫2017-05-19 10:44:28

    要不我抖个机灵?

    回复
    0
  • 取消回复