数组去重的六种方法
数组去重的方法
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 }