1.得到数组里重复的值
1 function getRepeat(ar){ 2 //数组排序 3 var ary = ar.sort(); 4 //创建装重复值的新数组 5 var newArr = new Array(); 6 //所有重复元素添加进新数组内 7 for(var i=0;i<ary.length;i++){ 8 //前一项和后一项相比较 如果相等 就放进新数组newArr内 9 if (ary[i]==ary[i+1]){ 10 newArr.push(ary[i]); 11 } 12 } 13 //创建一个空数组result用来存放最终结果,同时声明了一个isRepeated来标记重复状态 14 var result = [], isRepeated; 15 //对重复元素数组进行元素去重 16 for (var k = 0; k < newArr.length; k++) { 17 //进入循环开始 标记 isRepeated 初始值都是false 18 isRepeated = false; 19 for (var j = 0;j < result.length; j++) { 20 //如果新数组newArr内值和最终存放结果的数组内的值相等 则改变标记flag的状态为true 并跳出循环 继续下一次的循环 21 if (newArr[k] == result[j]) { 22 isRepeated = true; break; 23 } 24 } 25 //如果isRepeated状态明天被改变依然是false !false就是true 则把这个新数组newArr内这个值newArr[k] 放进result数字内 26 if (!isRepeated) { 27 result.push(newArr[k]); 28 } 29 } 30 return result; 31 }
1 function getRepeat(ar){ 2 var arr=[]; 3 var arr1=[]; 4 var arr2=[]; 5 for(var i=0;i<ar.length;i++){ 6 if(arr.indexOf(ar[i])==-1){ 7 arr.push(ar[i]) 8 }else{ 9 arr1.push(ar[i]) 10 } 11 } 12 if(arr1.length===1||arr1.length===0){ 13 return arr1; 14 }else{ 15 for(var i=0;i<arr1.length;i++){ 16 if(arr2.indexOf(arr1[i])==-1){ 17 arr2.push(arr1[i]) 18 } 19 } 20 return arr2; 21 } 22 }
2.数组去重方法
1 function unique(arr){ 2 // 遍历arr,把元素分别放入tmp数组(不存在才放) 3 var reset = new Array(); 4 for(var i in arr){ 5 //该元素在tmp内部不存在才允许追加 6 if(reset.indexOf(arr[i])==-1){ 7 reset.push(arr[i]); 8 } 9 } 10 return reset; 11 }
3.匹配两个数组,取出只有其中一个数组才有的值,以数组形式返回
1 function getArrData(a,b){ 2 var c=[]; 3 var arr00=[]; 4 for(var i in a){ 5 c[a[i]]=a[i]; 6 } 7 for(var i in b){ 8 if(c[b[i]]){ 9 delete c[b[i]]; 10 }else{ 11 c[b[i]]=b[i]; 12 } 13 } 14 for(var i in c){ 15 arr00.push(c[i]) 16 //arr00.push(c[i].split(',')) 17 } 18 return arr00; 19 }