微语 微语:代码适合中午敲,早晚出BUG

数组快速去重的方法 JavaScript

一.使用 Set 数据结构:Set 是 ES6 中的一种数据结构,它只能存储唯一的值,可以通过将数组转换为 Set 来去除重复项,然后再将 Set 转换回数组。

const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];

二.使用 Array.prototype.filter() 方法:使用 filter() 方法遍历数组,根据元素在数组中的首次出现的索引来确定是否保留该元素。

const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.filter((value, index, self) => self.indexOf(value) === index);

三.使用 Array.prototype.reduce() 方法:使用 reduce() 方法遍历数组,将元素添加到结果数组中,但仅在结果数组中不存在相同的元素时才添加。

const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.reduce((result, value) => {
    if (!result.includes(value)) {
        result.push(value);
    }
    return result;
}, []);

四.使用 ES6 中的 map() 方法:使用 map() 方法遍历数组,将元素作为键值对存储在 Map 数据结构中,然后返回 Map 的键数组。

const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = Array.from(new Map(arr.map(value => [value, value])).values());