1-1.利用ES6的Set函数
let arr=[1,2,3,4,5,3,5,6,2]; let a=new Set(arr); let b=[...a]; console.log(b);//[1,2,3,4,5,6]
1-2.利用数组的过滤方式
let arr=[1,2,3,4,5,3,5,6,2]; let b= arr.filter((val,index,self)=>{ return self.indexOf(val)===index; }); console.log(b);//[1,2,3,4,5,6]
1-3.利用for循环去重
let arr=[1,2,3,4,5,3,5,6,2]; let b=[]; for(let i=0;i<arr.length;i++){ if(b.indexOf(arr[i])<0){ b.push(arr[i]) } } console.log(b);//[ 1, 2, 3, 4, 5, 6 ]
1-4.利用双for循环去重
let arr=[1,2,3,4,5,3,5,6,2]; let b=[]; for(let i=0;i<arr.length;i++){ let bool=true; if(i>0){ for(let j=0;j<b.length;j++){ if(b[j]===arr[i]){ bool=false; } } if(bool){ b.push(arr[i]); } }else { b.push(arr[i]) } } console.log(b);//[ 1, 2, 3, 4, 5, 6 ]
1-5.先对原数组进行排序,在将原数组和去重数组最后一项比较
let arr=[1,2,3,4,5,3,5,6,2]; let b=[]; let arr1=arr.sort(); for(let i=0;i<arr1.length;i++){ if(arr1[i]!==b[b.length-1]){ b.push(arr1[i]) } } console.log(b);//[ 1, 2, 3, 4, 5, 6 ]
1-6.创建空对象,将原数组每一次循环的值作为对象的属性,判断对象属性是否存在,不存在的放入去重数组
let arr=[1,2,3,4,5,3,5,6,2]; let b=[]; let c={}; for(let i=0;i<arr.length;i++){ if(!c[arr[i]]){ b.push(arr[i]); c[arr[i]]='hello' } } console.log(b);//[ 1, 2, 3, 4, 5, 6 ]
个人比较推荐1,2,6