关于JS中数组去重的几种方法

方法一:采用indexof 方式进行去重

let arr=[1,2,4,7,18,7,2]  
let arr1=[]   //定义一个空数组
for(let i=0;i<arr.length;i++){
	if(arr1.indexOf(arr[i])===-1){  //在新数组中查询相应的数字,如果不存在,就将数字存入新数组
		arr1.push(arr[i]) 
	}
}
console.log(arr1)

方法二:利用数组的删除元素来进行

let ar=[1,2,4,7,18,7,2]
let ar1=ar.sort(function (a,b){
	return a-b
})
//先将数组进行排序
for(let i=0;i<ar1.length;i++){   
	if(ar1[i]===ar1[i+1]){   //判断相邻是否相等  ,如果相等
		ar1.splice(i,1)     //删除相同的数字,原数组发生变化
	}
} 
console.log(ar1)

方法三:利用slice截取方法进行去重

let ar=[1,2,4,7,18,7,2]
let ar1=ar.sort(function (a,b){
	return a-b 
}) //排序
let ar2=[] //创建一个空数组,将截取的元素存放
for(let i=0;i<ar1.length;i++){
	if(ar1[i]!=ar1[i+1]){      //判断相邻是否相等  ,如果不等
		let a=ar1.slice(i,i+1)  //截取本身成立一个新数组
		ar2.push(a[0])    //将自身数组的一个值添加 到空数组中
	}
}
console.log(ar2)
经验分享 程序员 微信小程序 职场和发展