JavaScript 数组去重:多种方法实现数组元素唯一性

使用Set、Filter结合indexOf、reduce及map可实现javaScript数组去重,基本类型推荐Set,对象数组按属性用Map键值映射,兼容老环境可用filter+indexOf。

JavaScript 数组去重:多种方法实现数组元素唯一性

javascript 中,数组去重是一个常见的需求,尤其是在处理用户输入、接口返回数据或进行数据清洗时。实现数组去重的方法有很多,每种方式适用于不同的场景。下面介绍几种常用且有效的数组去重方法。

使用 Set 去重(最简洁)

Setes6 引入的数据结构,它只存储唯一值,天然适合去重。

这种方法适用于基本类型(如字符串、数字)的数组去重,代码简洁高效。

示例:

JavaScript 数组去重:多种方法实现数组元素唯一性

腾讯智影-AI数字人

基于AI数字人能力,实现7*24小时AI数字人直播带货,低成本实现直播业务快速增增,全天智能在线直播

JavaScript 数组去重:多种方法实现数组元素唯一性73

查看详情 JavaScript 数组去重:多种方法实现数组元素唯一性

const arr = [1, 2, 2, 3, 4, 4, 5]; const unique = [...new Set(arr)]; // 结果:[1, 2, 3, 4, 5] 

使用 filter 和 indexOf 去重

通过 filter 配合 indexOf,保留第一次出现的元素。

立即学习Java免费学习笔记(深入)”;

该方法兼容性好,适合不支持 Set 的老环境。

示例:

const arr = ['a', 'b', 'a', 'c', 'b']; const unique = arr.filter((item, index) => arr.indexOf(item) === index); // 结果:['a', 'b', 'c'] 

使用 reduce 实现去重

利用 reduce 累积一个不含重复项的新数组。

这种方式逻辑清晰,便于添加自定义判断条件。

示例:

const arr = [1, 2, 2, 3, 1]; const unique = arr.reduce((acc, curr) => {   if (!acc.includes(curr)) {     acc.push(curr);   }   return acc; }, []); // 结果:[1, 2, 3] 

对象数组去重(基于属性)

当数组元素是对象时,不能直接用 Set 或 indexOf,需根据某个唯一字段(如 id)去重。

常用方法是使用 Map 按键存储,确保唯一性。

示例:按 id 去重

const users = [   { id: 1, name: 'Alice' },   { id: 2, name: 'Bob' },   { id: 1, name: 'Alice' } ];  const unique = Array.from(new Map(users.map(item => [item.id, item])).values()); // 结果:两个对象,id 为 1 和 2 各保留一个 

基本上就这些。选择哪种方法取决于数据类型浏览器兼容要求。简单数组优先用 Set,对象数组推荐 Map 键值映射,老项目可用 filter + indexOf。不复杂但容易忽略细节,比如引用类型比较的问题。

上一篇
下一篇
text=ZqhQzanResources