数组去重的六种方法

数组去重的方法

1 function dedupe(array){
2     return Array.from(new Set(array));
3 }
4 5 dedupe([1,2,3,3])

 

 1 let list = [1,2,4,3,2,3,5,6,7,8,7];
 2  3 let result = list.sort().reduce((init,current) => {
 4     if(init.length === 0 || init[init.length-1] !== current){
 5         init.push(current);
 6     }
 7     return init;
 8 },[]);
 9 10 console.log(result);

 

1 let arr = [1,2,3,3,4,5,5];
2 let unique = [...new Set(arr)];
3 return unique
4 //[1,2,3,4,5]

 

 1 // 数组方法
 2  let s = [7,9,3,9,2,1,7,2];
 3  var Dup = function(arr){
 4     let result = [];
 5     for(let i=0;i<arr.length;i++){
 6         flag = 0;
 7         for(let j=0;j<result.length;j++){
 8             if(arr[i] == result[j]) flag=1;
 9         }
10         if(flag==0)
11         result.push(arr[i]);
12     }
13     return result
14 }
15 console.log(Dup(s));

 

 1 //映射方法
 2 var map = new Map();
 3 var arr=[];
 4 for(let i=0;i<s.length;i++){
 5     if(!map.has(s[i]))
 6         map.set(s[i],1);
 7 }
 8 for(var key of map.keys()){
 9     arr.push(key);
10 }
11 console.log(arr);

 

1 //排序预处理+双边界方法
2 arr = s.sort();
3 for(let l=0;l<arr.length;l=r){
4     for(var r=l+1;r<arr.length;r++)
5         if(arr[r] != arr[l])
6             break;
7     console.log(arr[l]);
8 }

 

posted @ 2018-06-02 21:22  Annikaa  阅读(269)  评论(0编辑  收藏  举报