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

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

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

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值