您的位置:首页 > Web前端 > JavaScript

JS判断一个数组中是否有重复值的三种方法

2018-11-24 19:23 302 查看

方法一: 针对对应数据场景(并非通用方法)

var ary = new Array("111","22","33","111");

var s = ary.join(",")+",";

for(var i=0;i<ary.length;i++) {

       if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) {

               alert("数组中有重复元素:" + ary[i]);

                break;

       }

}

看到读者在评论中留言说到  对于var ary = new Array("111","3","33","1") 不可行,会判断说有重复值“3”, 确实是存在读者说的这种情况, 因此方法一存在一定的局限性, 没有达到通用, 大家在使用的时候也要格外注意.


方法二: 

var ary = new Array("111","22","33","111");

var nary=ary.sort();

for(var i=0;i<ary.length;i++){

       if (nary[i]==nary[i+1]){

             alert("数组重复内容:"+nary[i]);

       }

}


方法三: 如果仅仅是需要判断一个数组中是否存在重复数据, 推荐使用此方法

function isRepeat(arr){

var hash = {};

for(var i in arr) {

     if(hash[arr[i]])

          return true;

     hash[arr[i]] = true;

}

     return false;

}

 

转自:http://superivan.iteye.com/blog/1131328

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: