新闻中心

J*aScript中的Map与Set数据结构使用_js ES6+

2025-11-02
浏览次数:
返回列表
Map和Set是ES6新增的集合类型,Map支持任意键类型并保持插入顺序,适合存储键值对;Set自动去重,用于唯一值集合;WeakMap和WeakSet以弱引用避免内存泄漏,适用于对象私有数据管理。

javascript中的map与set数据结构使用_js es6+

在J*aScript ES6中,MapSet是两种新增的集合类型,它们弥补了传统对象和数组在处理键值对和唯一值集合时的不足。相比普通对象,它们更灵活、语义更清晰,尤其适合管理动态数据结构。

Map:键值对的有序集合

Map允许你使用任意类型的值作为键或值,并保持插入顺序。与普通对象只支持字符串或Symbol作为键不同,Map可以使用对象、函数甚至NaN作为键。

常用方法包括:

Dbsite企业网站管理系统1.5.0 Dbsite企业网站管理系统1.5.0

Dbsite企业网站管理系统V1.5.0 秉承"大道至简 邦达天下"的设计理念,以灵巧、简单的架构模式构建本管理系统。可根据需求可配置多种类型数据库(当前压缩包支持Access).系统是对多年企业网站设计经验的总结。特别适合于中小型企业网站建设使用。压缩包内包含通用企业网站模板一套,可以用来了解系统标签和设计网站使用。QQ技术交流群:115197646 系统特点:1.数据与页

Dbsite企业网站管理系统1.5.0 0 查看详情 Dbsite企业网站管理系统1.5.0
  • set(key, value):添加或更新键值对
  • get(key):获取对应值
  • has(key):判断是否存在该键
  • delete(key):删除指定键值对
  • clear():清空所有内容
  • size:返回键值对数量

示例:

const map = new Map();
map.set('name', 'Alice');
map.set({id: 1}, [1, 2, 3]);
map.get('name'); // 'Alice'
map.has({id: 1}); // false(引用不同)

遍历Map:

for (const [key, value] of map) {
  console.log(key, value);
}
// 或使用 forEach
map.forEach((value, key) => {
  console.log(key, value);
});

Set:唯一值的集合

Set用于存储唯一值,自动去重。任何类型都可以存入Set,重复的值将被忽略。

常用方法包括:

  • add(value):添加值
  • has(value):检查是否存在
  • delete(value):删除值
  • clear():清空集合
  • size:返回元素个数

示例:

const set = new Set([1, 2, 2, 3, 4, 4]);
console.log(set); // Set {1, 2, 3, 4}

set.add('hello');
set.has(1); // true

Set常用于数组去重:

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

WeakMap 与 WeakSet:弱引用集合

这两个变体仅接受对象作为键(WeakMap)或值(WeakSet),并且是“弱引用”,不会阻止垃圾回收。适合用于私有数据或对象元信息管理,避免内存泄漏。

特点:

  • 不阻止垃圾回收
  • 不可迭代
  • 没有size属性或clear()方法

WeakMap 示例:

const wm = new WeakMap();
const obj = {};
wm.set(obj, 'private data');
wm.get(obj); // 'private data'
obj = null; // 对象可被回收

基本上就这些。Map和Set让J*aScript的数据操作更强大,特别是在需要唯一性或非字符串键的场景下非常实用。合理使用Weak版本还能优化内存表现。

以上就是J*aScript中的Map与Set数据结构使用_js ES6+的详细内容,更多请关注其它相关文章!


# 用它  # 商城seo优化教程  # 引流营销推广系统图  # 怎么追踪关键词排名  # 嘉兴网站建设招商  # 泰州搜索引擎产品关键词排名  # 网络营销推广老梁是谁  # 网站建设类游戏  # 自然流量seo  # 兴义花果园网站建设  # 禹州seo优化排名  # 如何用  # 多线程  # javascript  # 可选  # 有哪些  # 企业网站  # 键值  # 管理系统  # 数据结构  # 网站建设使用  # 键值对  # js  # java  # es6 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  qq游戏手机版下载安装_qq游戏移动端入口  jQuery Mask 插件中实现电话号码固定前导零的教程  谷歌推RCS信息存档功能:公司可监控员工私密信息!  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  win11如何卸载Windows更新补丁 Win11解决更新导致系统不稳定的问题【修复】  探索高级语言到原生C/C++的转译:挑战与内存管理策略  护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?  如何将HTML表格多行数据保存到Google Sheets  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  学习通网页版快速入口 学习通官网网页版直接打开  CSS图片焦点样式实现教程:理解与应用tabindex属性  苹果手机如何防止被恶意App追踪  KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明  PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  在Blazor WebAssembly应用中动态注入客户端特定指标代码的策略  PDF文件体积过大处理_PDF压缩技巧详解  Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】  UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS  蛙漫移动版在线看 蛙漫手机浏览器直达入口  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  mc.js游戏直达 mc.js网页免下载版本秒进地址  qq游戏免费畅玩入口_qq游戏电脑版快速启动  在J*a中如何开发简易仓库管理与库存统计_仓库管理库存统计项目实战解析  Python Socket多播通信中指定源IP地址的实践指南  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  随机参数递归函数的基准调用次数与时间复杂度探究  大麦的“候补”是什么意思 大麦候补购票规则【详解】  c++如何实现单例设计模式_c++线程安全的单例模式写法  腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  C#使用XPath查询节点时出错? 常见语法错误与调试技巧  Go RPC HTTP服务正确实现与常见陷阱解析  J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南  顺丰快递查询系统 官方正版查询入口  Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略  新手怎么开始学化妆 零基础化妆入门教程  2026年CSGO开箱网站推荐 CSGO开箱平台精选  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明  mcjs网页版在线存档 mcjs云存档登录入口  “音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!  qq游戏大厅官方下载_qq游戏免费下载安装入口 

搜索