现JS高效去重算法有多种方式,下面介绍三种比较高效的方式:
- 使用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]
- 使用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]
- 使用indexOf
使用indexOf去重,也是一种简单高效的方式,可以兼容老版本的