ES6 Set、Map、WeakSet、WeakMap 四者辨析与实战应用详解
在 ES6 中,Set 和 Map 是两种非常重要的新增数据结构,它们都具有独特的特性和用途,能够帮助开发者更高效地处理和管理数据。除此之外,WeakSet 和 WeakMap 作为这两种数据结构的变种,也具有一些特殊的功能。下面我会从 Set 数据结构、Map 数据结构、WeakSet 和 WeakMap 对比等方面,结合实际项目代码示例进行详细分析。
1. Set 数据结构
1.1 Set 的基本概念
Set 是一种新的集合类型,它与传统的数组类似,但有以下几点不同:
- 元素唯一:Set 中的元素不能重复。
- 元素的顺序:Set 中的元素是有顺序的,按插入顺序进行遍历。
- 无索引:与数组不同,Set 中没有元素的索引,元素通过迭代访问。
1.2 Set 的常用操作
add(value):添加元素。has(value):检查 Set 中是否存在某个元素。delete(value):删除某个元素。clear():清空 Set 中的所有元素。size:返回 Set 中元素的个数。- 遍历:可以使用
forEach方法遍历 Set 中的元素,或者使用for...of循环。
1.3 Set 的示例
const set = new Set();// 添加元素
set.add(1);
set.add(2);
set.add(3);
set.add(2); // 不会添加重复元素console.log(set); // 输出: Set { 1, 2, 3 }// 检查是否存在某个元素
console.log(set.has(2)); // 输出: true
console.log(set.has(4)); // 输出: false// 删除元素
set.delete(2);
console.log(set); // 输出: Set { 1, 3 }// 遍历 Set
set.forEach(value => console.log(value)); // 输出: 1 3
1.4 Set 的实际应用场景
在实际项目中,Set 可以用于去重、数据存储、集合运算等。
例如:去重数组中的重复元素
相关文章:
ES6 Set、Map、WeakSet、WeakMap 四者辨析与实战应用详解
在 ES6 中,Set 和 Map 是两种非常重要的新增数据结构,它们都具有独特的特性和用途,能够帮助开发者更高效地处理和管理数据。除此之外,WeakSet 和 WeakMap 作为这两种数据结构的变种,也具有一些特殊的功能。下面我会从 Set 数据结构、Map 数据结构、WeakSet 和 WeakMap 对比…...
【数据结构】哈希表实现
前言 在本篇博客中,作者将会带领你使用C语言来实现一个哈希表。 一.什么是哈希表 在实现哈希表之前,我们先来学习一下什么是哈希表。 在传统的数据结构中,例如数组,链表和二叉平衡树等数据结构,这些数据结构的元素关键…...
Verilog的线与类型与实例化模块
1、线与类型 在Verilog中,线与(wire-AND)类型通常用于描述多个信号进行逻辑与(AND)操作的电路行为。虽然Verilog本身没有直接定义一种名为“线与”的数据类型,但可以通过使用wire类型结合特定的逻辑操作来…...
芯片测试-RF中的S参数,return loss, VSWR,反射系数,插入损耗,隔离度等
RF中的S参数,return loss, VSWR,反射系数,插入损耗,隔离度 💢S参数💢💢S11与return loss,VSWR,反射系数💢💢S21,插入损耗和增益&#…...
强化学习的几个主要方法(策略梯度、PPO、REINFORCE实现等)(上)
本笔记有大量参考蘑菇书EasyRL https://datawhalechina.github.io/easy-rl/#/ 包括其配图和部分文本。 1. 基本概念 1.1 基本流程 强化学习是一种学习框架,其中智能体(Agent) 通过与 环境(Environment) 的交互&#…...
Git远程仓库操作
文章目录 远程仓库连接Gitee克隆代码 多人协同问题说明 🏡作者主页:点击! 🤖Git专栏:点击! ⏰️创作时间:2024年12月1日13点10分 远程仓库 Git 是分布式版本控制系统,同一个 Git …...
GAGAvatar: Generalizable and Animatable Gaussian Head Avatar 学习笔记
1 Overall GAGAvatar(Generalizable and Animatable Gaussian Avatar),一种面向单张图片驱动的可动画化头部头像重建的方法,解决了现有方法在渲染效率和泛化能力上的局限。 旋转参数 现有方法的局限性: 基于NeRF的方…...
什么是VISUAL STUDIO CODE (V S CODE)
Visual Studio Code(简称VS Code)是由微软开发的一个免费的、开源的源代码编辑器。它是一个轻量级但功能强大的工具,支持多种编程语言和框架,广泛用于开发各种应用程序,尤其是Web开发。VS Code具备以下特点:…...
2024年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
青少年软件编程(Python)等级考试试卷(三级) 分数:100 题数:38 一、单选题(共25题,共50分) 1. 以下表达式的值为True的是?( ) A. all( ,1,2,3) B. any([]) C. bool(abc) D. divmod(6,0)...
C++初阶——动态内存管理
目录 1、C/C内存区域划分 2、C动态内存管理:malloc/calloc/realloc/free 3、C动态内存管理:new/delete 3.1 new/delete内置类型 3.2 new/delete自定义类型 4、operator new与operator delete函数 5、new和delete的实现原理 5.1 内置类型 5.2 自定…...
如何查看阿里云ddos供给量
要查看阿里云上的 DDoS 攻击量,你可以通过阿里云的 云盾 DDoS 防护 服务来进行监控和查看攻击数据。阿里云提供了详细的流量监控、攻击日志以及攻击趋势分析工具,帮助用户实时了解 DDoS 攻击的情况。以下是九河云总结的查看 DDoS 攻击量的步骤࿱…...
MySQL中的事务隔离全详解
第一部分:MySQL事务的特性与并行事务引发的问题 1. 什么是事务及其四大特性(ACID)? 事务(Transaction)是数据库操作的基本单位,它将一组操作组合在一起,以确保这些操作作为一个整体…...
异常--C++
文章目录 一、异常的概念及使用1、异常的概念2、异常的抛出和捕获3、栈展开4、查找匹配的处理代码5、异常重新抛出6、异常安全问题7、异常规范 二、标准库的异常 一、异常的概念及使用 1、异常的概念 异常处理机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并…...
SeggisV1.0 遥感影像分割软件【源代码】讲解
在此基础上进行二次开发,开发自己的软件,例如:【1】无人机及个人私有影像识别【2】离线使用【3】变化监测模型集成【4】个人私有分割模型集成等等,不管是您用来个人学习还是公司研发需求,都相当合适,包您满…...
锁-读写锁-Swift
实现一 pthread_mutex_t: ReadWriteLock/Sources/ReadWriteLock at main SomeRandomiOSDev/ReadWriteLock GitHub https://swiftpackageindex.com/reers/reerkit/1.0.39/documentation/reerkit/readwritelock/ // // Copyright © 2022 reers. // // Pe…...
Kafka如何保证消息可靠?
大家好,我是锋哥。今天分享关于【Kafka如何保证消息可靠?】面试题。希望对大家有帮助; Kafka如何保证消息可靠? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka通过多种机制来确保消息的可靠性,主要包…...
5.10【机器学习】
如果FLAG的画,就是已经有模型了,不然就新建一个模型,通过TORCH方法 在训练的时候,如果TRAIN的话就是训练,不然就是预测 forward前向预测出来一个结果,就是1234 在train方法里,进行多轮迭代&am…...
[白月黑羽]关于仿写股票数据软件题目的解答
原题: 对应问题视频: 实现的效果 不同点 实现的作品和原题要求的不同点 题目要求爬虫获取数据,作品中是调库获取所有股票历史数据实时数据使用爬虫的方式爬取指定股票的数据,需要实时更新,我做了修改,改…...
详解LZ4文件解压缩问题
详解LZ4文件解压缩问题 一、LZ4文件解压缩方法1. 使用LZ4命令行工具2. 使用Python库3. 使用第三方工具4. 在线解压工具 二、常见问题及解决方法1. 解压显示文件损坏2. 解压后文件大小异常 三、总结 LZ4是一种快速的压缩算法,广泛应用于需要实时压缩和解压缩大文件的…...
vue项目中单独文件的js不存在this.$store?.state怎么办
在Vue项目中,如果你在单独的文件(比如插件、工具函数等)中遇到this.$store不存在的情况,这通常是因为this上下文不指向Vue实例,或者Vuex store没有被正确地注入到Vue实例中。以下是几种可能的解决方案: 确保…...
AISMM评估到底值不值?SITS2026主讲人亲授:92%企业漏掉的3项隐性ROI测算方法
更多请点击: https://intelliparadigm.com 第一章:AISMM评估的价值再定义 从合规驱动到能力演进 传统安全成熟度模型常被简化为审计检查清单,而AISMM(AI Security Maturity Model)将评估视角转向组织在AI全生命周期中…...
临沂口碑好的展会老根红木哪家专业
在临沂,展会是家居建材行业交流与发展的重要平台,而老根红木等品牌在其中表现卓越,赢得了良好的口碑。下面,让我们深入了解这些专业品牌的魅力所在。一、老根红木背后的强大品牌支撑老根红木隶属于山东老根文化传媒有限公司&#…...
Godot开发者必备:Awesome Godot资源合集使用指南
1. 项目概述:一份为Godot开发者量身定制的“藏宝图”如果你正在使用Godot引擎开发游戏,或者对这个开源、免费且功能强大的游戏引擎感兴趣,那么你很可能已经体会过在茫茫互联网中寻找高质量资源、插件和参考项目的痛苦。官方文档固然详尽&…...
ClawDen爬虫工具库:模块化设计与实战应用解析
1. 项目概述:一个为开发者准备的“瑞士军刀”式工具库最近在GitHub上闲逛,发现了一个名为wssaidong/ClawDen的项目。光看名字,ClawDen就透着一股“爪子”和“巢穴”的混合感,直觉告诉我这应该是一个与数据抓取或自动化处理相关的工…...
嵌入式开发中的极限编程(XP)实践指南
1. 嵌入式开发的困境与XP的引入在嵌入式系统开发领域,我们常常面临两个几乎无法逃避的现实困境。第一个是所有软件开发项目共通的痛点:截止日期往往在需求明确之前就被固定下来。第二个则是嵌入式开发特有的挑战:目标硬件通常要到项目后期才能…...
在i.MX6ULL开发板上手搓DS18B20驱动:从GPIO配置到用户态测试的完整流程
在i.MX6ULL开发板上手搓DS18B20驱动:从GPIO配置到用户态测试的完整流程 温度传感器在工业控制、智能家居等领域有着广泛应用,而DS18B20作为一款经典的单总线数字温度传感器,以其独特的单线接口和较高的精度受到开发者青睐。本文将带你从零开始…...
tinfoleak地理情报分析:追踪用户位置与移动路线的终极指南
tinfoleak地理情报分析:追踪用户位置与移动路线的终极指南 【免费下载链接】tinfoleak The most complete open-source tool for Twitter intelligence analysis 项目地址: https://gitcode.com/gh_mirrors/ti/tinfoleak tinfoleak是一款功能强大的开源Twitt…...
PyTorch-OpCounter终极测试指南:5步编写可靠的算子计数测试用例
PyTorch-OpCounter终极测试指南:5步编写可靠的算子计数测试用例 【免费下载链接】pytorch-OpCounter Count the MACs / FLOPs of your PyTorch model. 项目地址: https://gitcode.com/gh_mirrors/py/pytorch-OpCounter PyTorch-OpCounter是一款用于计算PyTor…...
CANoe项目里DBC文件多了怎么办?一个CAPL函数教你轻松管理和遍历
CANoe多DBC文件管理实战:用CAPL实现智能遍历与动态配置 在车载网络测试领域,随着ECU数量增加和网络拓扑复杂化,单个CANoe工程往往需要加载多个DBC文件已成为常态。当项目规模扩大到包含数十个ECU、跨CAN/LIN/Ethernet多种总线时,D…...
C++虚函数机制与性能优化深度解析
1. C虚函数机制深度解析虚函数是C实现运行时多态的核心机制,它允许子类重写父类的方法,并在运行时根据对象实际类型调用正确的函数实现。这种动态绑定特性是面向对象编程中"一个接口,多种实现"思想的关键支撑。1.1 虚函数表(vtbl)的…...
