数组去重的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