数组去重的几种方法

总结几种用js方法实现数组去重

a.对比方法:

1
2
3
4
5
6
7
8
9
10
11
//数组去重
var arr= [ 1, 2 ,3 , 3, 5 ,2 , 1];
var res= [];
for (var i =0 ,len =arr.length;i < len;i++ ){
for (var j =0 ;j <arr.length;j ++ ){
if (arr[i]== arr[j] &&i !== j){
arr.splice(j, 1 );
}
}
}
console .log(arr)//[1,2,3,5]

b、对象判断法

1
2
3
4
5
6
7
8
9
10
var  arr =[ 1 ,2 , 3, 3 ,5 , 2, 1 ];
var res= [],obj ={},i = 0;
for (;i< arr.length;i ++){
// console .log(i,obj[arr[i]]);
if (! obj[arr[i]]){
res.push(arr[i]);
obj[arr[i]] = 1;
}
}
console .log(res,obj);//[1,2,3,5]

c、es6方法去重

1
2
3
4
5
6
7
8
9
10
//includes属于es7方法
//数组查询ES6写法
let arr1= [ 1, 2 ,3 , 3, 5 ,2 , 1];
let res= [];
for (var [i,value] of arr1.entries()){
if (! res.includes(value)){
res.push(value);
}
}
console .log(res);//[1,2,3,5]

d、数组indexOf方法

1
2
3
4
5
6
7
8
//indexof方法
var arr2= [ 1, 2 ,3 , 3, 5 ,2 , 1],res2 = [];
for (var i =0 ;i <arr2.length;i ++ ){
if (res2.indexOf(arr2[i]) ==-1 ){
res2.push(arr2[i]);
}
}
console .log(res2);//[1,2,3,5]

热评文章