一、不使用Set集合方法
1、循环要去重的数组,然后用新数组去找要去重数组的值,找不到就加到新数组中
// 方法一:
// 循环要去重的数组,然后用新数组去找要去重数组的值,找不到就加到新数组中
let arr = [1,2,3,5,4,3,5,2,5,0,1,4,3]
let newArr = []
arr.forEach(e=>{
if(newArr.findIndex(x=>x===e)===-1){
newArr.push(e)
}
})
console.log('newArr:',newArr);
// 方法二:
let newArr2 = []
arr.forEach(e=>{
if(newArr2.indexOf(e) === -1){ //也可以使用lastIndexOf
newArr2.push(e)
}
})
console.log('newArr2:',newArr2);
2、外层循环遍历数组,内层循环比较值,如果有相同, 则使用splice去除
// 方法三:
// 外层循环遍历数组,内层循环比较值,如果有相同, 则使用splice去除
let newArr3 = [1,2,3,5,4,3,5,2,5,0,1,4,3]
for(let i=0;i<newArr3.length;i++){
for(let j=i+1;j<newArr3.length;j++){
if(newArr3[i]===newArr3[j]){
newArr3.splice(j,1)
j-- //作用:删除一个数组值后,需要把下标-1继续遍历
}
}
}
console.log('newArr3',newArr3);
3、使用include去重,新数组不存在的就添加
// 方法四:
// 使用include去重,新数组不存在的就添加
let newArr4 = []
arr.forEach(x => {
if(!newArr4.includes(x)){
newArr4.push(x)
}
})
console.log('newArr4',newArr4);
二、使用Set集合方法
1、因为Set集合里面不允许出现重复值,将要去重的数组作为参数传进去,创建一个新数组,循环遍历一下集合,将每个集合元素添加到新数组
// 方法一:
// 因为Set集合里面不允许出现重复值,将要去重的数组作为参数传进去
// 创建一个新数组,循环遍历一下集合,将每个集合元素添加到新数组
let set1 = new Set(arr) //返回Set对象类型
let arr3 = []
set1.forEach(x => {
arr3.push(x)
})
console.log('arr3',arr3);
2、直接用Set集合去重,然后展开放入数组
// 方法二:
let arr4 = [...set1]
console.log('arr4',arr4);
3、使用Array.from(); 能够把伪数组,Set集合转成数组类型
// 方法三:
// Array.from(); 能够把伪数组,集合转成数组类型
let set2 = new Set(arr)
let arr5 = Array.from(set2)
console.log('arr5',arr5);