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

ES6-Set-Map对象小记

Set 对象

添加元素

set.add(value)

常用方法

方法描述
has()判断 Set 对象中特定元素是否存在
delete()Set 对象中删除指定元素
clear()清空 Set 对象

遍历方法

很容易想到使用set.forEach(callBackFn, thisArg)方法来进行遍历,其中callBackFn回调的形式如下:

set.forEach(function (value, key, set) {// value为set中的元素值// key与value相同// set对象本身
}, thisArg)
//  thisArg 为this对象,为可选参数

回调的参数依次为:

  • value
  • key
  • set

其中,为了和其他有key的对象保持一致,这里使用的value占位了第二个参数,所以key就是value的值。

Map 对象

创建方法

// 伪代码:
new Map()
new Map(可迭代对象)// 实际代码的演示:
const map = new Map([['book', 3], ['pen', 5]])
console.log(map)

通常会传入一个二维数组作为可迭代对象,每个一位数组都是一个两元素的小数组,作为可迭代对象的键值对。

添加元素

// 伪代码
map.set(,);// 实际代码的演示:
const map = new Map()
map.set([1, 2, 3], '书籍')
map.set(false, '日用品')
map.set(3, '化妆品')
console.log(map)

获取元素

// 伪代码:
map.get(key)// 实际演示:
const map = new Map()
map.set(false, '日用品')
console.log(map)const item = map.get(false)
console.log(item)

常用方法

方法描述
has()判断 Map 对象中指定键对应的条目是否存在
delete()Map 对象中删除指定键对应的条目
clear()清空 Map 对象

对应的实例:

let bookstore = new Map()
bookstore.set('《活着》', '余华')
bookstore.set('《平凡的世界》', '路遥')
bookstore.set('《三体》', '刘欣慈')
bookstore.set('《猫和老鼠》', '电影')
console.log('《活着》是否存在:', bookstore.has('《活着》'))bookstore.delete('《猫和老鼠》')
console.log('《猫和老鼠》是否存在:', bookstore.has('《猫和老鼠》'))bookstore.clear()
console.log(bookstore)

遍历方法

其中callBackFn回调中的参数依次为value,key,map自身,可以看得出来,ES6forEach方法参数上的统一性。

// 伪代码:
map.forEach(callbackFn, thisArg)// 参考示例:
const userName = new Map([[1, '小红'], [2, '小蓝'], [3, '小白']])
userName.forEach(function (value, key) {console.log('当前条目的键为:', key)console.log('当前条目的值为:', value)
})

结语

实际上,还有weakSetweakMap这两种垃圾回收机制更强的弱引用SetMap,本文不再展开。

相关文章:

  • KDD 2025 | (8月轮)时间序列(Time Series)论文总结
  • PostgreSQL安装部署
  • 使用HunyuanVideo搭建文本生视频大模型
  • 【2025五一数学建模竞赛B题】 矿山数据处理问题|建模过程+完整代码论文全解全析
  • qemu(4) -- qemu-system-arm使用
  • 从股指到期指,哪些因素影响基差?
  • Selenium3自动化测试,Python3测试开发教程视频测试用例设计
  • 学习与规划的融合Dyna-Q:python从零实现
  • 【Github仓库】Learn-Vim随笔
  • Redis ⑧-RESP | 渐进式遍历 | 数据库管理
  • 机器人--主机--控制系统
  • YOLOv8模型训练过程
  • MCP:智能家居的“大脑”,如何引领未来居住革命
  • LangChain4j +DeepSeek大模型应用开发——7 项目实战 创建硅谷小鹿
  • Python Cookbook-6.14 实现状态设计模式
  • DeepSeek 赋能自然语言处理:从理论到实践的全方位解析
  • Qt指南针
  • 支持selenium的chrome driver更新到136.0.7103.49
  • 打包 Python 项目为 Windows 可执行文件:高效部署指南
  • 33、VS中提示“以下文件中的行尾不一致。是否将行尾标准化?“是什么意思?
  • 安徽两位新任地级市政府党组书记亮相
  • 证监会副主席王建军被查
  • 中国防疫队深入缅甸安置点开展灾后卫生防疫工作
  • 央行副行长:研究建立民营中小企业增信制度,破解民营中小企业信用不足等融资制约
  • 牛市早报|今年国内核电项目审批首次开闸,离境退税起退点下调
  • 央视曝光假进口保健品:警惕!保税仓发货不等于真进口