• 七种去重的方法


     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>
  • 相关阅读:
    谈谈JavaScript中继承方式
    《前端架构设计》学习笔记一--架构的种子
    正则中1的用法---反向引用
    JavaScript千分符---正则实现
    JavaScript开发中常用的代码规范配置文件
    前端开发流程---我们应该做些什么
    JavaScript中数据类型判断
    冒泡排序以及改进
    Number和toString中的坑
    Fluent Ribbon 第五步 ToolBar
  • 原文地址:https://www.cnblogs.com/dinner/p/9060548.html
Copyright © 2020-2023  润新知