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

  • 相关阅读:
    《天才在左,疯子在右》
    MVC思想概述
    java文件读写
    HTTP协议简单笔记
    自学Python_Day01
    Linux基础介绍篇
    PHP学习 Day_01
    Linux中部分命令英语全拼
    Linux学习基础命令(三)
    Linux学习基础命令(二)
  • 原文地址:https://www.cnblogs.com/it-snail/p/3860861.html
Copyright © 2011-2022 走看看