zoukankan      html  css  js  c++  java
  • 数组去重

    利用javascript进行数组去重,调研了下面几种方法:

    1.遍历数组,删除已出现的元素

    var uniqueArrByDel = function(arr){
      for(var i = 0; i < arr.length-1; i++){
          var item = arr[i];
          for(var j = i +1; j < arr.length;j++){
             (item=== arr[j]) && (arr.splice(j,1)&&j--);
         }
     }  
    }    

    2.利用对象来删除元素

    var uniqueArrByObj = function(arr){
      var tempArr = [], obj = {};
      for(var i = 0; i < arr.length; i ++){
          var item = arr[i];
          if(!obj[item]){
           obj[item] = true;
           tempArr.push(item); 
          }
        }
          return tempArr;  
    }    

    3.利用数组原生方法filter

    var uniqueArrByFilter = function(arr){
      return arr.filter(function(elem, index, self){//elem当前元素 index当前索引 self数组
        return index == self.indexOf(elem);//数组原生方法filter中设置回调函数,回调函数返回true则不删除,返回false则删除元素          
        });  
    }

    动态生成100元素长的数组来测试上面三个方法,1和2的执行时间小于0ms,3的执行时间大于11ms,看来原生方法效率一般般啊

    参考:

    http://www.cnblogs.com/mackxu/p/array-unique.html

    http://blog.segmentfault.com/fishenal/1190000000418858

  • 相关阅读:
    关于软件工程的理解
    二人编程项目----五子棋
    多线程单元测试
    软件工程的 理解和问题
    教务管理系统软件设计说明书
    团队分组
    结对项目:贪吃蛇
    使用JUNIT等工具进行单元测试
    学习软件工程现存问题
    对unit4测试的初步认知
  • 原文地址:https://www.cnblogs.com/it-snail/p/3860861.html
Copyright © 2011-2022 走看看