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

Set对象和Map对象的区别和用途【JavaScript】

引言:

在 JavaScript 中,Set 对象和 Map 对象都是 ES6 引入的新数据结构,它们各自有不同的用途和特点。

Set 对象:

用途:

Set对象用于存储一组唯一的值。它不允许有重复的元素,因此非常适合用于数组去重、集合运算(如并集、交集和差集)等场景。

特点‌:

  • Set对象中的值是唯一的,尝试添加已存在的值会被忽略。
  • Set对象中的值可以是任何类型,包括原始值和对象引用。
  • Set对象中的值是无序的,但通常在现代JavaScript引擎中,它们会保持插入顺序。

‌常用方法‌:

  1. add(value): 向Set中添加一个值。
  2. delete(value): 从Set中删除一个值。
  3. has(value): 检查Set中是否包含某个值。
  4. clear(): 清除Set中的所有值。
  5. size: 返回Set中元素的数量。

示例:

const mySet = new Set();
mySet.add(1);
mySet.add(2);
mySet.add(2); // 重复添加,不会生效
console.log(mySet); // Set { 1, 2 }

Map对象:

‌用途‌:

Map对象用于存储键值对,其中键可以是任何类型,包括对象、函数等。它适用于需要根据键快速查找和访问值的情况,如缓存、字典、关联数组等。

‌特点‌:

  1. Map对象中的键是唯一的,但不同的键可以对应相同的值。
  2. Map对象中的键和值都可以是任何类型,提供了比传统对象更灵活的键值对存储机制。
  3. Map对象会记住键的原始插入顺序,因此迭代时会按照插入顺序返回键值对。

‌常用方法‌:

  1. set(key, value): 向Map中添加一个键值对。
  2. get(key): 根据键获取对应的值。
  3. delete(key): 根据键删除一个键值对。
  4. has(key): 检查Map中是否包含某个键。
  5. clear(): 清除Map中的所有键值对。
  6. size: 返回Map中键值对的数量。

示例:

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
console.log(myMap.get('key1')); // 'value1'
console.log(myMap); // Map { 'key1' => 'value1', 'key2' => 'value2' }

总结:

Set对象用于存储一组唯一的值,适用于需要排除重复元素的场景。
Map对象用于存储键值对,其中键可以是任意类型,适用于需要根据键快速查找和访问值的情况。


http://www.kler.cn/a/466977.html

相关文章:

  • 用公网服务代理到本地电脑笔记
  • element-plus大版本一样,但是小版本不一样导致页面出bug
  • Sql中WITH的作用
  • 我的创作纪念日——《惊变128天》
  • v-model与 mvvm 回顾
  • 【工具类】RedisUtil 操作相关
  • 深入探索 SQLite:高级功能解析
  • 自动驾驶控制与规划——Project 5: Lattice Planner
  • 【时时三省】(C语言基础)常见的动态内存错误2
  • 解读 C++23 std::expected 函数式写法
  • 【Rust自学】10.4. trait Pt.2:trait作为参数和返回类型、trait bound
  • 简易Type-C拉取5V/3A电流电路分享
  • 【动态重建】时间高斯分层的长体积视频
  • Excel使用VLOOKUP时注意绝对引用和相对引用区别
  • 基于Java的超级玛丽游戏的设计与实现【源码+文档+部署讲解】
  • SQLite AND/OR 运算符
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(数字化联合审查管理系统)
  • JVM学习指南(9)-JVM运行时数据区
  • Kotlin 协程基础知识总结六 —— 协程 Flow 的综合应用
  • rocketmq-pull模式-消费重平衡和拉取PullTaskImpl线程
  • ubuntu1604 apt镜像源切换
  • 使用PyTorch实现基于稀疏编码的生成对抗网络(GAN)在CIFAR-10数据集上的应用
  • 计算机毕业设计PyHive+Hadoop深圳共享单车预测系统 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习
  • STM32-笔记34-4G遥控灯
  • Golang:使用minio替代文件系统实战教程
  • NLP CH3复习