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

时间:2022-04-07 09:43:38

方法一:

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);