js中set数组去重怎么用

js中set数组去重怎么用
最新回答
帕嘉音

2020-06-01 19:37:40

在 JavaScript 中,使用 Set 进行数组去重是一种高效且简洁的方法。以下是具体竖戚实现步骤和示例代码:

核心步骤
  1. 创建 Set 对象:将数组作为参数传入 Set 构造函数,自动过滤重复值。
  2. 转换回数组:通过 Array.from() 或展开运算符 ... 将 Set 转为数组。
示例代码const arr = [1, 2, 3, 4, 5, 1, 2, 3];const uniqueArr = [...new Set(arr)]; // 或 Array.from(new Set(arr))console.log(uniqueArr); // 输出: [1, 2, 3, 4, 5]关键点说明
  • Set 的特性:Set 仅存储唯一值,重逗橘复添加的值会被自动忽略。
  • 简化写法:直接通过 new Set(arr) 初始化,无需手动逐个添加元素。
  • 转换方法

    Array.from(set):将 Set 的可迭代对象转为数组。

    [...set]:使用展开运算符,更简洁。

注意事项
  • 对象/数组去重:Set 对引用类型(如对象、数组)的去重是基于引用地址的,内容相同但引用不同的对象不会被去重。const objArr = [{a: 1}, {a: 1}];const uniqueObjArr = [...new Set(objArr)]; // 结果仍为两个对象
  • 性能优势:Set 去重的时间复杂度接近 O(n),适合余指陵处理大规模数据。
完整流程图示
  1. 输入数组 → 2. 转为 Set(自动去重) → 3. 输出新数组graph LR A([原始数组]) --> B[new Set(arr)] B --> C[...Set 或 Array.from] C --> D([去重后数组])

通过以上方法,可以快速实现数组去重,代码简洁且性能优异。