JS如何高效去重?

74 阅读1分钟

现JS高效去重算法有多种方式,下面介绍三种比较高效的方式:

  1. 使用Set

ES6中引入了Set数据结构,可以非常快速地对一个数组进行去重。你可以通过将数组转换为Set来实现去重,然后将Set转换回数组。示例代码如下:

const arr = [1, 2, 2, 3, 3, 4, 5, 5];  
const uniqueArr = Array.from(new Set(arr));  
console.log(uniqueArr); // [1, 2, 3, 4, 5]  
  1. 使用Map

利用Map去重,也是一种高效的去重方式,可以保留原数组中的顺序。可以遍历数组,将每个元素作为Map的键,并将键值设为1。如果下次再遇到相同的键,则说明重复,将其从数组中删除。示例代码如下:

const arr = [1, 2, 2, 3, 3, 4, 5, 5];  
let map = new Map();  
let uniqueArr = [];  
for (let i = 0; i < arr.length; i++) {  
if (!map.has(arr[i])) {  
map.set(arr[i], 1);  
uniqueArr.push(arr[i]);  
}  
}  
console.log(uniqueArr); // [1, 2, 3, 4, 5]  
  1. 使用indexOf

使用indexOf去重,也是一种简单高效的方式,可以兼容老版本的