七种去重的方法

 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>
原文地址:https://www.cnblogs.com/dinner/p/9060548.html