前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6 Map介绍

ES6 Map介绍

原创
作者头像
堕落飞鸟
发布2023-05-23 09:28:38
3680
发布2023-05-23 09:28:38
举报
文章被收录于专栏:飞鸟的专栏

工作原理

Map是一种有序的键值对集合,其中每个键都是唯一的。它可以存储任何类型的值作为键或值,包括原始类型和对象引用。与普通的对象不同,Map保留了插入顺序,并且可以迭代访问其元素。

Map的工作原理是基于哈希表(Hash Table)的数据结构。当我们将键值对添加到Map中时,它会根据键的哈希值将其存储在内部的哈希表中。这使得在Map中查找键值对的速度非常快,无论存储了多少个键值对。

常见方法

以下是ES6 Map常见的方法:

  • set(key, value):向Map中添加一个键值对,如果键已经存在,则更新对应的值。
  • get(key):根据键获取对应的值,如果键不存在,则返回undefined。
  • has(key):检查Map中是否存在指定的键,返回一个布尔值。
  • delete(key):根据键删除对应的键值对,如果删除成功,则返回true;如果键不存在,则返回false。
  • clear():清空Map,移除所有的键值对。
  • size:获取Map中键值对的数量。

除了上述方法外,Map还提供了其他方法来遍历和操作键值对,例如keys()values()entries()等。

示例

让我们通过一些示例来理解ES6 Map的使用。

示例1:添加和获取键值对

代码语言:javascript
复制
const map = new Map();

map.set('name', 'John');
map.set('age', 30);
map.set('isStudent', false);

console.log(map.get('name')); // 输出:John
console.log(map.get('age')); // 输出:30
console.log(map.get('isStudent')); // 输出:false

在上面的示例中,我们创建了一个空的Map对象,并使用set()方法添加了三个键值对。然后,我们使用get()方法获取键对应的值。

示例2:迭代Map

代码语言:javascript
复制
const map = new Map();

map.set('name', 'John');
map.set('age', 30);
map.set('isStudent', false);

// 迭代键
for (const key of map.keys()) {
  console.log(key);
}

// 迭代值
for (const value of map.values()) {
  console.log(value);
}

// 迭代键值对
for (const [key, value] of map.entries()) {
  console.log(key, value);
}

在这个示例中,我们使用for...of循环迭代Map的键、值和键值对。通过调用keys()方法,我们可以获取所有的键;通过调用values()方法,我们可以获取所有的值;通过调用entries()方法,我们可以获取所有的键值对。

示例3:使用对象作为键

代码语言:javascript
复制
const user1 = { id: 1 };
const user2 = { id: 2 };

const map = new Map();

map.set(user1, 'John');
map.set(user2, 'Jane');

console.log(map.get(user1)); // 输出:John
console.log(map.get(user2)); // 输出:Jane

在这个示例中,我们创建了两个对象user1user2,并将它们作为键添加到Map中。然后,我们使用对象作为键来获取对应的值。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工作原理
  • 常见方法
  • 示例
    • 示例1:添加和获取键值对
      • 示例2:迭代Map
        • 示例3:使用对象作为键
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档