当前位置: 首页 > 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,本文不再展开。

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

相关文章:

  • 业务流程BPM能力框架体系及华为中兴流程变革案例P83(83页PPT)(文末有下载方式)
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(六)
  • 初识 Java
  • OpenGL-ES 学习(12) ---- VBO EBO VAO
  • 网络分析/
  • 前端如何转后端
  • 【Docker】Dockerfile 使用
  • 【AI大模型学习路线】第一阶段之大模型开发基础——第二章(大模型的训练与应用)大模型发展史?大模型预训练、微调到应用的过程?
  • 【小米拥抱开源】小米开源 MiMo 家族,探索 Reasoning 的可能性
  • Chromium 134 编译指南 - Android 篇:获取源码(五)
  • 为 Unity 项目添加自定义 USB HID 设备支持 (适用于 PC 和 Android/VR)-任何手柄、无人机手柄、摇杆、方向盘
  • 聊一聊接口测试如何处理鉴权
  • terraform中statefile文件的实现原理及作用
  • 模型开发之前的核心工作
  • 数据结构学习之顺序表
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的个性化与小众化消费社群构建研究
  • KDD 2025 | (8月轮)时空数据(Spatial-temporal)论文总结
  • 如何用AI生成生成个人简历
  • 浅析 MegEngine 对 DTR 的实现与改进
  • 【docker学习笔记】如何删除镜像启动默认命令
  • Docker启动nacos
  • zephyr架构下扫描和解析Beacon数据
  • Learning vtkjs之TriangleFilter
  • 开发板型号 ESP32-DevKitC-32模块型号 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3
  • 电子秤检测管理系统开发实战:从数据采集到可视化大屏
  • Python Cookbook-6.14 实现状态设计模式
  • Windows下Python3脚本传到Linux下./example.py执行失败
  • 3D版同步帧游戏
  • 案例:自动化获取Web页面小说(没钱修什么仙)——selenium
  • mem0 安装与测试:一个强大的对话记忆管理工具