首页 > 编程语言 > 详细

数组去重的几个函数

时间:2016-03-03 22:38:05      阅读:330      评论:0      收藏:0      [点我收藏+]

数组去重的6个函数方法


1
        

      function ov1(arr){
        var a1=((new Date).getTime());
        for(var i=0;i<arr.length;i++){
          for(var j=i+1;j<arr.length;j++){
            if(arr[i]===arr[j]){
              arr.splice(j,1);
              j--;
            };
          };
        };
        t1 = ‘ov1:‘+((new Date).getTime()-a1);
        return arr.sort(function(a,b){return a-b});
      };

 14             function vo2(a){
 15                 var a1=((new Date).getTime());
 16                 var b = [], n = a.length,j,i;
 17                 for(i = 0; i<n; i++){
 18                     for(j=i+1; j<=n; j++){
 19                         if(a[i]===a[j]){
 20                             j=false;
 21                             break;
 22                         };
 23                     };    
 24                     if(j){
 25                         b.push(a[i]);
 26                     };                
 27                 }
 28                 t2 = ‘ov2:‘+((new Date).getTime()-a1); 
 29                 return b.sort(function(a,b){return a-b;});
 30             };
 31             function ov3(a) {
 32                 
 33                     var a1=((new Date).getTime())
 34                 
 35                     var b = [], n = a.length, i, j;
 36                 
 37                     for (i = 0; i < n; i++) {
 38                 
 39                         for (j = i + 1; j < n; j++)
 40                 
 41                         if (a[i] === a[j]){j=false;break;};
 42             
 43                         if(j){b.push(a[i])};
 44                 
 45                     }
 46                 
 47                     t3 = ‘ov3:‘+((new Date).getTime()-a1);   
 48                     
 49                     return b.sort(function(a,b){return a-b});
 50                 
 51             }
 52             function ov4(a) {
 53             
 54                 var a1=((new Date).getTime())
 55             
 56                 var b = [], n = a.length, i, j;
 57             
 58                 for (i = 0; i < n; i++) {
 59             
 60                     for (j = i + 1; j < n; j++){
 61                         if (a[i] === a[j]){
 62                             j=++i;
 63                         };
 64                     };
 65                     b.push(a[i]);
 66                 };
 67             
 68                 t4 = ‘ov4:‘+((new Date).getTime()-a1);  
 69             
 70                 return b.sort(function(a,b){return a-b});
 71             
 72             }   
 73             function ov6(ar){
 74             
 75                 var a1=((new Date).getTime());
 76                 var m=[],f;
 77             
 78                 for(var i=0;i<ar.length;i++){
 79             
 80                 f=true;
 81             
 82                 for(var j=0;j<m.length;j++)
 83             
 84                 if(ar[i]===m[j]){f=false;break;};
 85             
 86                 if(f)m.push(ar[i])}
 87             
 88                 t6 = ‘ov6:‘+((new Date).getTime()-a1);   
 89             
 90                 return m.sort(function(a,b){return a-b});
 91             
 92             }
 93             function ov5(ar){
 94             
 95                 var a1=((new Date).getTime())
 96             
 97                 var m=[],f;
 98             
 99                 for(var i=0;i<ar.length;i++){
100             
101                 f=true;
102             
103                 for(var j=0;j<m.length;j++)
104             
105                 if(ar[i]===m[j]){f=false;break;};
106             
107                 if(f)m.push(ar[i])}
108             
109                 t5 = ‘ov5:‘+((new Date).getTime()-a1); 
110             
111                 return m.sort(function(a,b){return a-b});
112             
113             }

 这六个函数方法,推荐使用的是ov5和ov6,这两个方法,经过测试这两个方法的效率最高,效率最差的就是第一个函数方法,但是第一个函数方法特别容易看懂,当中第二个和第三个是相同的,可以略过。

数组去重的几个函数

原文:http://www.cnblogs.com/swl267/p/5240174.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!