首页 > 代码库 > js 判断数组的值是否有重复
js 判断数组的值是否有重复
方法一:
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 判断数组的值是否有重复