码迷,mamicode.com
首页 > 其他好文 > 详细

七种去重的方法

时间:2018-05-19 17:08:09      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:循环   else   from   error   lse   false   ret   ror   []   

 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>

 

七种去重的方法

标签:循环   else   from   error   lse   false   ret   ror   []   

原文地址:https://www.cnblogs.com/dinner/p/9060548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!