数组去重的几种方式

1、利用 Map 数据结构去重

1 let arr = [1,2,3,4,3,2,3,4,6,7,6];
2      let unique = (arr)=> {
3         let seen = new Map();
4          return arr.filter((item) => {
5             return !seen.has(item) && seen.set(item,1); 
6         });
7      };
8  unique(arr);                                       

2、利用 for 嵌套 for,然后 splice 去重

 1 functionunique(arr){
 2     for(vari=0; i<arr.length; i++){
 3         for(var j=i+1; j<arr.length; j++){
 4             if(arr[i]==arr[j]) {
 5 //第一个等同于第二个,splice 方法删除第二个
 6     arr.splice(j,1); j--;
 7              }
 8         }
 9     }
10     return arr;
11  }
12                         

3、for 双重循环 通过判断第二层循环,去重的数组中是否含有该元素,如果有就退出第二 层 循环,如果没有j==result.length 就相等,然后把对应的元素添加到最后的数组里面。

 1 let arr = [1,2,3,4,3,2,3,4,6,7,6];
 2 let result = [];
 3   for(var i = 0 ; i < arr.length; i++) {
 4       for(var j = 0 ; j < result.length ; j++) {
 5                if(arr[i] === result[j]){
 6      break;
 7 
 8      };
 9  };
10         if(j == result.length){
11 result.push(arr[i]);  
12 };
13 };
14     console.log(result);   

4、利用 filter

let arr = [1,2,3,4,3,2,3,4,6,7,6]; 
    let unique = (arr) => {
        return arr.filter((item,index) => {
    return arr.indexOf(item) === index; })
}; 
    unique(arr);

 

posted @ 2022-09-04 22:54  荣姐  阅读(193)  评论(0编辑  收藏  举报