数组去重的几种方式
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);