原生JavaScript数组去重的方法总结

原生JavaScript数组去重的方法总结

1.排序法数组去重

只能处理同一类型的数组,并且还需要单独处理NaN

let arr = [1,2,3,1,2,3];
let newArr = [];
arr.sort(function(a,b){
	return a-b;
})
for(let i=0; i<arr.length; i++){
	if(arr[i] != arr[i+1]){
		newArr[newArr.length] = arr[i];
	}
}
console.log(newArr)

2.indexOf法数组去重

需要单独处理元素为NaN

let arr = [1,2,3,1,2,3];
let newArr = [];
for(let i=0; i<arr.length; i++){
	if(newArr.indexOf(arr[i]) === -1){
		newArr[newArr.length] = arr[i];
	}
}
console.log(newArr)

3.对象法数组去重

无法识别字符串和数字类型

let arr = [1,2,3,1,2,3,"1","2","3"];
let newArr = [];
let obj = {};
for(let i=0; i<arr.length; i++){
	if(obj[arr[i]] === undefined){
		newArr[newArr.length] = arr[i];
		obj[arr[i]] = 1;
	}
}
console.log(newArr)

4.开关法数组去重

需要单独处理NaN

let arr = [1,2,3,1,2,3];
let newArr = [];
for(let i=0; i<arr.length; i++){
	let isOk = true;
	for(let j=0; j<arr.length; j++){
		if(newArr[j] === arr[i]){
			isOk = false;
			break;
		}
	}
	if(isOk){
		newArr[newArr.length] = arr[i];
	}
}
console.log(newArr)

5.set法数组去重

1.一行代码即可实现数组去重; 2.不用单独处理NaN;

let newArr = [...new Set([1,2,3,1,2,3])];
console.log(newArr)

在平时的工作中,比较常用的也就是set这种方式,简单又快捷,但是也不乏会用上别的几种方式,所以在繁忙之余总结了一下这几种原生js数组去重的方法,希望可以帮助到各位同学!有疑问也可以留言和我交流,欢迎大家给我指错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值