1.ES5常用方法
let arr =[1,2,2,3,4,4,4,4,7]
for(let i =0;i<arr.length;i++){
//对数组进行遍历,用第一个依次和后面的进行比较
for(let j=i+1;j<arr.length;j++){
//如果相等就将后面相等的删除,并且删除后下标-1
if(arr[i]==arr[j]){
arr.splice(j,1)
i--
}
}
}
//此时的arr就是去重后的数组
2.ES6
let arr =[1,2,2,3,4,4,4,4,7]
//利用了ES6的集合元素唯一性
arr= [ ...new Set(arr)];
//此时的arr就是去重后的数组
3.利用其它方法进行数组去重,原理大致一样
let arr =[1,2,2,3,4,4,4,4,7]
//利用过滤器和indexOf返回一个索引相等的元素
arr = arr.filter((item,index)=>{
//利用了indexOf只会查找到第一个元素符合要求的,然后返回索引,
//判断查找到的第一个元素是不是当前元素的索引,如果是的话就证明唯一,就返回当前的元素
//如果不是的话就证明不唯一,就不返回
return arr.indexOf(item) === index
});
//此时的arr为去重后的数组
//与filter原理类似,但是forEach不返回,因此需要借助中间遍历b
//来存储去重后的数组,此时b就是去重后的
let arr =[1,2,2,3,4,4,4,4,7]
let b = []
arr.forEach((item,index)=>{
if(arr.indexOf(item) === index){
b.push(item)
}
})