Skip to content

Commit 249f108

Browse files
committed
Create 面试题-数组去重.js
1 parent 445d390 commit 249f108

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

面试题-数组去重.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// see http://www.cnblogs.com/mackxu/p/array-unique.html
2+
3+
// for循环删除后面重复的 速度最快,可用倒序计算可加快速度
4+
5+
var uniqueFor = function(arr) {
6+
for (var i = 0; i < arr.length - 1; i++) {
7+
var item = arr[i];
8+
for(var j = i+1; j < arr.length; j++ ) {
9+
item === arr[j] && (arr.splice(j, 1), j--);
10+
}
11+
};
12+
return arr;
13+
};
14+
15+
16+
//判断对象属性
17+
18+
var uniqueObject = function(arr) {
19+
var v, r = [], o = {};
20+
for(var i = 0; (v = arr[i]) !== undefined; i++) {
21+
!o[v] && (r.push(v), o[v] = true);
22+
}
23+
return r;
24+
};
25+
26+
27+
//数组过滤重复项filter
28+
29+
var uniqueFilter = function(arr) {
30+
return arr.filter(function(elem, pos, self) {
31+
// 如果没有重复项,返回true
32+
return self.indexOf(elem, pos + 1) === -1;
33+
});
34+
};

0 commit comments

Comments
 (0)