JS判斷一個數組中是否有重複值的三種方法
阿新 • • 發佈:2019-02-04
參考 http://superivan.iteye.com/blog/1131328
缺點:如果陣列的內容是var ary = new Array("111","22","33","1111");
那同樣會提示陣列有重複元素。因為後者的1111包含了前者的內容。因此該方法不是很準確。
推薦第二種方法:
第三種方法
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","22","33","1111");
那同樣會提示陣列有重複元素。因為後者的1111包含了前者的內容。因此該方法不是很準確。
推薦第二種方法:
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;
}