方法一:比较内层循环变量的值.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var
arr = [1, 2, 3, 1, 3, 4, 5, 5];
var
resultArr = [];
for
(i = 0; i < arr.length; i++) {
for
(j = 0; j < resultArr.length; j++) {
if
(resultArr[j] == arr[i]) {
break
;
}
}
if
(j == resultArr.length) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr);
//1,2,3,4,5
|
方法二:计数法.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var
arr = [1, 2, 3, 1, 3, 4, 5, 5];
var
count;
var
resultArr = [];
for
(i = 0; i < arr.length; i++) {
count = 0;
for
(j = 0; j < resultArr.length; j++) {
if
(resultArr[j] == arr[i]) {
count++;
break
;
}
}
if
(count == 0) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr);
//1,2,3,4,5
|
方法三:flag标志法(也叫假设成立法)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var
arr = [1, 2, 3, 1, 2, 3, 4, 5, 5];
var
resultArr = [];
//[1,2,3]
var
flag;
for
(
var
i = 0; i < arr.length; i++) {
flag =
true
;
for
(j = 0; j < resultArr.length; j++) {
if
(resultArr[j] == arr[i]) {
flag =
false
;
break
;
}
}
if
(flag) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr);
//1,2,3,4,5
|
方法四:使用sort()方法排序后比较
1
2
3
4
5
6
7
8
9
10
11
12
|
var
arr = [1, 2, 3, 1, 2, 3, 4, 5, 5];
var
resultArr = [];
arr.sort(
function
(a, b) {
return
a - b;
});
//这个时候arr变成了[1, 1, 2, 2, 3, 3, 4, 5, 5]
for
(i = 0; i < arr.length; i++) {
if
(arr[i] != arr[i + 1]) {
resultArr[resultArr.length] = arr[i];
}
}
console.log(resultArr);
|
方法五:使用filter()方法筛选掉重复的数组
1
2
3
4
5
6
7
|
var
arr = [1, 2, 3, 1, 2, 3, 4, 5, 5];
var
resultArr;
resultArr = arr.filter(
function
(item, index, self) {
return
self.indexOf(item) == index;
});
console.log(resultArr);
|