前端js数组去重有哪些方法?

如题所述

JavaScript 数组去重方法多样,常用策略如下:

使用 Set 数据结构去重:Set 是一个不包含重复值的集合,将数组转换为 Set 后再转回数组即可去除重复项。

示例代码:const arr = [1, 2, 2, 3, 4, 4]; const uniqueArr = [...new Set(arr)];

使用循环和映射:通过循环遍历数组,利用映射对象判断元素是否已存在,不存在则加入新数组。

示例代码:const arr = [1, 2, 2, 3, 4, 4]; const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);

使用递归算法:通过递归判断数组中的元素是否重复,将不重复的元素添加到新数组。

示例代码:function unique(arr) { if (!arr.length) return []; return arr.reduce((acc, cur) => { if (!acc.includes(cur)) acc.push(cur); return acc; }, []);}

数组排序与遍历:先对数组进行排序,然后遍历数组,删除重复元素。

示例代码:const arr = [1, 2, 2, 3, 4, 4]; arr.sort(); arr.filter((value, index) => arr.indexOf(value) === index);

使用 Map 数据结构:通过 Map 记录已出现的元素,遍历数组,若元素已存在 Map 中,则跳过,否则添加到新数组。

示例代码:const arr = [1, 2, 2, 3, 4, 4]; const uniqueArr = [...new Map(arr.map(item => [item, true])).keys()];

总的来说,不同方法适用于不同场景,选择适合自己的去重策略是关键。
温馨提示:答案为网友推荐,仅供参考
相似回答