方法一: 针对对应数据场景(并非通用方法)
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