原生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数组去重的方法,希望可以帮助到各位同学!有疑问也可以留言和我交流,欢迎大家给我指错。

おすすめ

転載: blog.csdn.net/cautionHua/article/details/113988818