//1.for循环去重
let arr = [1,3,5,32,67,43,56,8,8,88,9,8,5,4,5,3,4,5,11];
for(let i = 0;i < arr.length;i++){
for(let j = i + 1;j < arr.length;j++){
if(arr[i] == arr[j]){
arr.splice(j,1)
j--
}
}
}
console.log(arr); //[1,3,5,32,67,43,56,8,88,9,4,11]
//2.includes(indexOf)去重
let arr = [1,3,5,32,67,43,56,8,8,88,9,8,5,4,5,3,4,5,11],
newArr = [];
for(let i of arr){
if(!newArr.includes(i)){
newArr.push(i)
}
}
for(let i of arr){
if(!(newArr.indexOf(i)>-1)){
newArr.push(i)
}
}
console.log(newArr)//[1, 3, 5, 32, 67, 43, 56, 8, 88, 9, 4, 11]
//3.filter循环与第二个方法类似
let arr = [1,3,5,32,67,43,56,8,8,88,9,8,5,4,5,3,4,5,11],
newArr = [];
newArr=arr.filter((val,index) =>{
if(!newArr.includes(val)){
newArr.push(val)
}
})
console.log(newArr)
newArr=arr.filter((val,index) =>{
if(!(newArr.indexOf(val)>-1)){
newArr.push(val)
}
})
console.log(newArr)
//4.sort()排序法
let arr = [1,3,5,32,67,43,56,8,8,88,9,8,5,4,5,3,4,5,11];
arr = arr.sort((a,b)=>{return a-b});//只对数字排序
for(let i = 0;i < arr.length;i++){
if(i <= arr.length - 1 && arr[i] == arr[i + 1]){
arr.splice(i,1);
i--
}
}
console.log(arr)//[1, 3, 4, 5, 8, 9, 11, 32, 43, 56, 67, 88]
//5.ES6 Array.from()方法
let arr = [1,3,5,32,67,43,56,8,8,88,9,8,5,4,5,3,4,5,11];
arr = Array.from(new Set(arr));
console.log(arr)
arr = [...new Set(arr)];//简写方法
console.log(arr)
//6.递归去重(与排序法去重原理相同)
let arr = [1,3,5,32,67,43,56,8,8,88,9,8,5,4,5,3,4,5,11];
arr = arr.sort((a,b)=>{return a-b});//只对数字排序
function recursion(i){
if(i > 1){
if(arr[i] == arr[i- 1]){
arr.splice(i,1)
}
i--
recursion(i)
}
}
recursion(arr.length - 1)
console.log(arr)
数组去重方法整理
最新推荐文章于 2023-09-19 22:15:50 发布