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

ES6中,Set和Map的区别 ?

在 ES6 中,Set 和 Map 都是新的集合数据结构,它们提供了存储唯一值和键值对的能力,但它们在设计目的和功能上有所不同。以下是 Set 和 Map 之间的主要区别:

  1. 用途

    • Set:主要用于存储唯一值集合。它的成员值都是唯一的,如果尝试向 Set 添加重复的值,它会自动忽略。
    • Map:用于存储键值对,类似于 JavaScript 对象。Map 的每个“键”都是唯一的,但是“值”可以重复。
  2. 成员

    • Set:只有值,没有键。
    • Map:有键(key)和值(value)。
  3. 迭代

    • Set:可以通过 values()keys(), 和 entries() 方法来迭代值、键或键值对。
    • Map:同样可以通过 values()keys(), 和 entries() 方法来迭代值、键或键值对。
  4. 键的类型

    • Set:只能存储原始值,如数字或字符串。
    • Map:键可以是任何类型,包括函数、对象等。
  5. 操作方法

    • Set 提供了如 add()delete()has()clear(), 和 size 属性等基本操作。
    • Map 提供了更多的操作方法,如 get()set()delete()has()clear()keys()values()entries(), 和 size 属性等。
  6. 应用场景

    • Set 适用于需要保证唯一性的集合,例如存储用户名、唯一标识符等。
    • Map 适用于需要存储关联数据的场景,例如缓存对象、将数据映射到另一个数据结构等。

以下是一个简单的示例,展示如何使用 Set 和 Map:

 

// Set 示例
let fruits = new Set(["apple", "banana", "apple"]); // "apple" 只会被添加一次
console.log(fruits.size); // 输出 2

// Map 示例
let fruitsMap = new Map([["apple", 1], ["banana", 2]]);
console.log(fruitsMap.get("apple")); // 输出 1

在这个例子中,fruits 是一个 Set,它只包含两个唯一的值 "apple" 和 "banana"。而 fruitsMap 是一个 Map,它将 "apple" 映射到数字 1,将 "banana" 映射到数字 2。


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

相关文章:

  • eduSRC挖洞思路
  • C++网络编程:select IO多路复用及TCP服务器开发
  • Java中的线程池使用详解
  • Brain.js 用于浏览器的 GPU 加速神经网络
  • v-for产生 You may have an infinite update loop in a component render function
  • [创业之路-155] :《领先的密码-BLM方法论全面解读与应用指南》- 综合管理框架
  • DFS练习题 ——(上)
  • CentOS8.5.2111(7)完整的Apache综合实验
  • maxun爬虫工具docker搭建
  • Java八股(一)
  • 问:Spring JavaConfig怎么用?
  • mybatis-plus 实现分页查询步骤
  • 【设计模式】创建型模式之装饰器模式(组成、步骤、优缺点、场景)
  • 群聊前选择患者功能的实现
  • Vue集成Excalidraw实现在线画板功能
  • ELK配置索引清理策略
  • ts 非空断言
  • 跨平台应用开发框架(2)----Qt(窗口篇)
  • Linux 下自动化之路:达梦数据库定期备份并推送至 GitLab 全攻略
  • 开箱即用!合合信息的智能文档处理“百宝箱”
  • 华三堆叠配置实验
  • Java对象集合使用Java 8的Stream API合并数据
  • 华为云国内版与国际版的差异
  • ML 系列:第 31 节— 机器学习中的协方差和相关性
  • 01-go入门
  • 游戏引擎学习第21天