zoukankan      html  css  js  c++  java
  • 数组去重的一些方法和思路 总有一个你会的!!! 不全之处敬请见谅

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="utf-8">
      5         <title>数组去重</title>
      6     </head>
      7     <body>
      8     </body>
      9     <script type="text/javascript">
     10         var arr = [1,8,8,2,2,3,4,5,5,6,6,6,7]
     11         
     12         
     13         //方法一  简单粗暴
     14         // var arr = new Set(arr);
     15         // console.log(arr)  //==>[1,2,3,4,5,6,7]
     16         
     17         
     18         /****************************************************************/
     19         //方法二 先转对象只拿key
     20         // var obj = {};
     21         // for(var i = 0 ;i<arr.length;i++){
     22         //     if(!obj[arr[i]]){
     23         //         obj[arr[i]] = 1
     24         //     }else{
     25         //         obj[arr[i]] ++
     26         //     }
     27         // }
     28         // console.log(obj)
     29         
     30         //只拿key   一
     31         // var arr2 = Object.keys(obj)
     32         // console.log(arr2)
     33         
     34         //只拿key   二
     35         // var arr2 = [];
     36         // for(var attr in obj){
     37         //     arr2.push(attr)
     38         // }
     39         // console.log(arr2)
     40         
     41         
     42         /********************************************************************************/
     43         
     44         
     45         //方法三 
     46         // var arr1=[];
     47         // for(var i=0;i<arr.length;i++){
     48         //     //得到arr中的每一个元素,在arr1中根据元素找索引,找不到,就把arr[i]推进arr1里
     49         //     if(arr1.indexOf(arr[i])===-1){
     50         //         arr1.push(arr[i]);
     51         //     }
     52         // }
     53         // console.log(arr1)        ////==>[1,2,3,4,5,6,7]
     54         
     55         
     56         
     57         /*************************************************************************/
     58         
     59         //方法四  转字符串转数组
     60         // var str = arr.toString();
     61         // var str1 = "";
     62         // for(var i =0;i<str.length;i++){
     63         //     if(str1.indexOf(str[i])==-1 && str[i] !== ","){
     64         //         str1 += str[i]+","
     65         //     }
     66         // }
     67         // str1 = str1.slice(0,str1.length-1)
     68         // console.log(str1.split(','))
     69         
     70         /**************************************************************************/
     71         
     72         
     73         //方法四  双层循环,外循环表示从0到arr.length,内循环表示从i+1到arr.length,将没重复的右边值放入新数组。
     74         //(检测到有重复值时终止当前循环同时进入外层循环的下一轮判断)
     75         // function unique(arr){
     76         //     var newArr = [];
     77         //     for(var i = 0;i<arr.length;i++){
     78         //         for(var j=i+1;j<arr.length;j++){
     79         //             if(arr[i] == arr[j]){
     80         //                 ++i
     81         //             }
     82         //         }
     83         //         newArr.push(arr[i])
     84         //     }
     85         //     return newArr
     86         // }
     87         // console.log(unique(arr))
     88         
     89         /*****************************************************************************************/
     90         //方法五            给传入数组排序,排序后相同值相邻, 然后遍历时,
     91         // 新数组只加入不与前一值重复的值。会打乱原来数组的顺序
     92 
     93         // function unique(arr){
     94         //     arr.sort();
     95         //     var newArr = [arr[0]];
     96         //     for(var i =1;i<arr.length;i++){
     97         //         if(arr[i] !== newArr[newArr.length-1]){
     98         //             newArr.push(arr[i])
     99         //         }
    100         //     }
    101         //     return newArr
    102         // }
    103         // console.log(unique(arr))
    104         
    105     </script>
    106 </html>
  • 相关阅读:
    LCA --算法竞赛专题解析(29)
    倍增与ST算法 --算法竞赛专题解析(28)
    可持久化线段树(主席树) --算法竞赛专题解析(27)
    莫队算法 --算法竞赛专题解析(26)
    分块 --算法竞赛专题解析(25)
    表格标题或内容平铺样式
    SpringMVC传参
    按字节截取字符串
    Redis常用命令及知识
    修改数据库字段类型或名字
  • 原文地址:https://www.cnblogs.com/CH-cnblogs/p/13601317.html
Copyright © 2011-2022 走看看