首页 > 代码库 > js 判断数组的值是否有重复

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","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;

}

 

Js中sort()方法的用法

sort(sortfunction)为javascript的数组对象(Array)的一个方法,提供排序功能
参数 sortFunction 为可选项,是用来确定排序原则的js函数,
这个函数有两个参数,分别代表每次排序比较时的两个数组项,
如果这个函数的返回值小于0 则不交换原数组中元素的位置,否则交换原数组中元素的位置。

如果这个参数被省略, 那么元素将按照 ASCII 字符顺序进行升序排列。

Demo1默认按字母排序

var arr = [‘b‘,‘cc‘,‘abc‘,‘fzj‘,‘xij‘,‘acd‘,‘yab‘];   

arr.sort();   

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

   document.writeln(nameArr[i]);   

}   

结果:abc acd b cc fzj xij yab

 

Demo2数字排序,sort(prama)方法带参数

//降序函数  

var desc = function(x,y)    

{    

    if (x > y)      

        return -1;  //返回一个小于0 的数即可  

   else        

       return 1;  //返回一个大于0 的数即可  

}    

//升序函数  

var asc = function(x,y)    

{    

    if (x > y)      

       return 1;  //返回一个大于0 的数即可  

   else            

        return -1;  //返回一个小于0 的数即可  

}  

  

var arr2 = [4,6,4,2,7,9,0,1];    

arr2.sort(desc); //降序排序  

document.writeln(arr2);    

document.writeln("<br>");    

arr2.sort(asc); //升序排序  

document.writeln(arr2);   

结果:
9,7,6,4,4,2,1,0
0,1,2,4,4,6,7,9

 

Demo2的简单算法

var arr2 = [4,6,4,2,7,9,0,1]; 
arr2.sort(function(a,b){return a - b});
document.writeln(arr2); 
document.writeln("<br>"); 
arr2.sort(function(a,b){return b - a});
document.writeln(arr2);

js 判断数组的值是否有重复