• js删除数组中重复的元素


     1、方法一

    将数组逐个搬到另一个数组中,当遇到重复元素时,不移动,若元素不重复则移动到新数组中

     1 function unique(arr){
     2         var len = arr.length;
     3         var result = []
     4         for(var i=0;i<len;i++){
     5             var flag = true;
     6             for(var j = i;j<arr.length-1;j++){
     7                 if(arr[i]==arr[j+1]){
     8                     flag = false;
     9                     break;
    10                 }
    11             }
    12             if(flag){
    13                 result.push(arr[i])
    14             }
    15         }
    16         return result;
    17     }

    2、方法二

    遍历数组arr,把元素分别放入另一个数组result中,判断arr中的元素在result中是否存在,不存在即加入temp中

    1 function unique(arr){
    2         var result = [];
    3         for(var i=0;i<arr.length;i++){
    4             if(result.indexOf(arr[i])==-1){
    5                 result.push(arr[i])
    6             }
    7         }
    8         return result;
    9     }

    3、方法三

    将数组的值作为对象的属性,通过对象的属性值来判断数组是否重复,若该项不重复则给对象对应属性值赋为true,便于之后的判断,并将数据项加入结果集中

     1 function unique(arr) {
     2         var result = [];
     3         var obj = {};
     4         for(var i=0;i<arr.length;i++){
     5             if(!obj[arr[i]]){
     6                 result.push(arr[i]);
     7                 obj[arr[i]] = true;
     8             }
     9         }
    10         return result
    11     }

    也可以通过判断对象中是否包含该属性来去重,此时对象属性的值可以任意但必须有值,否则会认为该属性不存在

     1 function unique(arr) {
     2         var result = [];
     3         var obj = {};
     4         for(var i=0;i<arr.length;i++){
     5             if(!obj.hasOwnProperty(arr[i])){// if(!(arr[i] in obj))
     6                 result.push(arr[i]);
     7                 obj[arr[i]] = 0;
     8             }
     9         }
    10         return result
    11     }

      

    4、方法四

    将数组的值赋给另一个数组的键,此时重复的元素都被删除,然后取新数组的键作为去重后的结果

     1 function unique(arr){
     2         var result = []
     3         var temp = []
     4         for(var i in arr){
     5             temp[arr[i]] = 1;
     6         }
     7         for(var i in temp){
     8             result.push(i)
     9         }
    10         return result
    11     }
  • 相关阅读:
    重置(reset) HANA的是system的密码
    Linux删除其他程序正在使用的文件
    ECC升级S/4HANA
    一步一步教你写SAP RFC
    如何查看MAXDB日志
    How to delete SAP* from HANA Tenant database(HANA数据库下如何删除SAP*账户)
    echo N>/proc/sys/vm/drop_caches清理缓存
    SUM in the family way
    vue 使用 autoprefixer amfeflexible postcsspxtorem 自动转rem移动端适配
    VueJS实现迷糊查询
  • 原文地址:https://www.cnblogs.com/lhyhappy365/p/5912460.html
Copyright © 2020-2023  润新知