七种去重的方法
Posted dinner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七种去重的方法相关的知识,希望对你有一定的参考价值。
1 <script> 2 var arr = [6,2,2,4,4,6,6,4,4,6,6,2,23,23,31]; 3 /*第一种去重方式:双重循环*/ 4 /* function Toheavy(arr){ 5 if(!Array.isArray(arr)){ 6 return "type error!"; 7 } 8 let newarr = []; 9 for(let i = 0 ; i <arr.length;i++){ 10 let flag = true; 11 for(let j = 0;j<newarr.length;j++){ 12 if(arr[i]===newarr[j]){ 13 flag= false; 14 break; 15 } 16 } 17 if(flag){ 18 newarr.push(arr[i]); 19 } 20 } 21 return newarr; 22 } */ 23 24 /*第二种去重方式:indexOf()去重一*/ 25 /* function Toheavy(arr){ 26 if(!Array.isArray(arr)){ 27 return "type error!"; 28 } 29 let newarr = []; 30 for(let i = 0;i<arr.length;i++){ 31 if(newarr.indexOf(arr[i])===-1){ 32 newarr.push(arr[i]); 33 } 34 } 35 return newarr; 36 } */ 37 /*第三种方式去重:indexOf()去重二*/ 38 /* function Toheavy(arr){ 39 if(!Array.isArray(arr)){ 40 return "type error!"; 41 } 42 return Array.prototype.filter.call(arr,function(item,index){ 43 return arr.indexOf(item)===index; 44 }) 45 }*/ 46 /*第四种方式去重:相邻元素去重*/ 47 /* function Toheavy(arr){ 48 if(!Array.isArray(arr)){ 49 return "type error!"; 50 } 51 arr = arr.sort(); 52 let newarr = []; 53 for(let i = 0;i<arr.length;i++){ 54 if(arr[i]!==arr[i+1]){ 55 newarr.push(arr[i]); 56 } 57 } 58 return newarr; 59 }*/ 60 /*第五种方式去重:利用对象属性去重*/ 61 /* function Toheavy(arr){ 62 if(!Array.isArray(arr)){ 63 return "type error!"; 64 } 65 let newarr=[]; 66 let obj = {}; 67 for(let i = 0;i<arr.length;i++){ 68 if(!obj[arr[i]]){ 69 newarr.push(arr[i]); 70 obj[arr[i]]=1; 71 }else{ 72 obj[arr[i]]++ 73 } 74 } 75 return newarr; 76 }*/ 77 /*第六种方式去重:set与结构赋值去重*/ 78 /* function Toheavy(arr){ 79 if(!Array.isArray(arr)){ 80 return "type error!"; 81 } 82 return [...new Set(arr)]; 83 }*/ 84 /*第七种方式去重:Arrar.form与set去重*/ 85 function Toheavy(arr){ 86 if(!Array.isArray(arr)){ 87 return "type error!"; 88 } 89 return Array.from(new Set(arr)); 90 } 91 console.log(Toheavy(arr)); 92 93 </script>
以上是关于七种去重的方法的主要内容,如果未能解决你的问题,请参考以下文章