当前位置: 首页 > ds >正文

关于 JavaScript 中 new Set() 的详解

new Set() 是什么?

它是 JavaScript 中用于创建 Set 对象的构造函数。Set 是一种特殊的数据集合,核心特性是 自动去重(所有值唯一)。

核心特性:

  1. 值唯一性
    自动忽略重复值,每个值在 Set 中只能出现一次。
const set = new Set();
set.add("苹果");
set.add("苹果"); // 重复值被忽略
console.log(set); // 输出: Set(1) { "苹果" }
  1. 支持任何数据类型
    可存储:字符串、数字、对象、null、undefined,甚至 NaN(Set 视 NaN 为相同值)。
  2. 常用方法:
    .add(值):添加值(返回 Set 本身,可链式调用)。
    .has(值):检查是否存在该值(返回布尔值)。
    .delete(值):删除值(成功返回 true)。
    .clear():清空所有值。
    .size:属性,获取当前值的数量(非方法)。

实际示例

// 1. 创建 Set
const fruits = new Set();// 2. 添加值
fruits.add("🍎");
fruits.add("🍌").add("🍇"); // 链式添加
fruits.add("🍎"); // 重复值无效// 3. 检查与操作
console.log(fruits.size);    // 输出: 3(苹果、香蕉、葡萄)
console.log(fruits.has("🍌")); // 输出: true
fruits.delete("🍇");         // 删除葡萄// 4. 转换为数组(经典用法:数组去重)
const arr = [1, 1, 2, 3];
const uniqueArr = [...new Set(arr)]; // [1, 2, 3]

关键细节

  • 值比较规则:使用严格相等 (===),但 NaN 被视为相同(与 === 不同)。
  • 顺序保留:Set 会记住值的添加顺序(遍历时按插入顺序输出)。
  • 高效查找:has() 方法性能远优于数组的 includes()(尤其数据量大时)。

常见用途

  • 数组去重(最常用)
const arr = [1, 2, 2, 3];
const unique = [...new Set(arr)]; // [1, 2, 3]
  • 存储不重复的键(如用户 ID 列表)
  • 高效存在性检查(替代数组搜索)

如果需要键值对结构,请使用 Map;若只需唯一值集合,Set 是最佳选择。

http://www.xdnf.cn/news/13244.html

相关文章:

  • 免费PDF转图片软件
  • 【Dv3Admin】系统视图登录日志API文件解析
  • C++八股 —— 单例模式
  • TCP/IP 网络编程 | 服务端 客户端的封装
  • spring boot使用HttpServletResponse实现sse后端流式输出消息
  • Ubuntu 安装 Mysql 数据库
  • 『uniapp』消息推送 unipush的对接 支持通知消息内容客户端自定义(保姆级图文)
  • STL 2迭代器
  • rknn toolkit2搭建和推理
  • DL00871-基于深度学习YOLOv11的盲人障碍物目标检测含完整数据集
  • C++11作用域枚举(Scoped Enums):从入门到精通
  • AI书签管理工具开发全记录(十九):嵌入资源处理
  • 自然语言处理——Transformer
  • LTR-381RGB-01RGB+环境光检测应用场景及客户类型主要有哪些?
  • Android15默认授权浮窗权限
  • 驭码CodeRider 2.0全栈开发实战指南:从零构建现代化电商平台
  • 【若依】框架项目部署笔记
  • LabVIEW双光子成像系统技术
  • 力扣热题100 k个一组反转链表题解
  • 由于 z(x,y) 的变化导致的影响(那部分被分给了链式项)
  • 实现自动化管理、智能控制、运行服务的智慧能源开源了。
  • Spring MVC执行流程简介
  • rnn判断string中第一次出现a的下标
  • ESP32开发之WS2812B控制
  • 前端性能优化-虚拟滚轮(Virtual Scroll)
  • nuclio
  • Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
  • [拓扑优化] 1.概述
  • 【http解析——三个版本对比】
  • 【Qt】控件 QWidget