JavaScript 中的 Map 和 Set 对象是 ES6 引入的两个重要数据结构,它们提供了更灵活和高效的方式来存储和管理数据。接下来,我将详细介绍这两个对象,并给出一些代码示例。

一、Map 对象

Map 是一种键值对的集合,其中每个键都与一个值相对应。与普通对象不同,Map 允许使用任何类型的值(包括对象和函数)作为键。Map 的插入顺序也会被记住,遍历时可以按照插入的顺序依次访问每一个元素。

创建 Map

要创建一个 Map,我们可以使用其构造函数:

let map = new Map();

我们也可以传入一个可迭代对象来初始化:

let map2 = new Map([
  ['name', 'Tom'],
  ['age', 25],
  ['gender', 'male']
]);

操作 Map

Map 有几个常用的方法:

  • set(key, value):添加一个新元素或更新一个已存在的元素。
  • get(key):返回与键对应的值,如果键不存在则返回 undefined。
  • has(key):检查 Map 是否包含特定的键,返回布尔值。
  • delete(key):删除 Map 中指定的键及其对应的值。
  • clear():清空 Map 中的所有元素。
  • size:返回 Map 中元素的数量。

以下是一个简单的示例:

let map = new Map();
map.set('name', 'Tom');
map.set('age', 25);
console.log(map.get('name')); // 输出: Tom
console.log(map.size); // 输出: 2

map.delete('age');
console.log(map.has('age')); // 输出: false
console.log(map.size); // 输出: 1

map.clear();
console.log(map.size); // 输出: 0

遍历 Map

我们可以使用 for...of 循环来遍历 Map。Node 的插入顺序会被保留,这使得遍历的顺序与添加的顺序一致:

let map = new Map([
  ['name', 'Tom'],
  ['age', 25],
  ['gender', 'male']
]);

for (let [key, value] of map) {
  console.log(`${key}: ${value}`);
}
// 输出:
// name: Tom
// age: 25
// gender: male

二、Set 对象

Set 是一种值的集合,其中每个值都是唯一的,不会重复。与 Map 类似,Set 也记录了元素的插入顺序。

创建 Set

创建 Set 非常简单:

let set = new Set();

我们也可以用一个可迭代对象初始化 Set:

let set2 = new Set([1, 2, 3, 4, 5, 2]);  // 2 将被忽略

操作 Set

Set 的常用方法:

  • add(value):向 Set 中添加一个新元素。
  • delete(value):从 Set 中删除指定的元素。
  • has(value):检查 Set 是否包含特定的值。
  • clear():清空 Set 中的所有元素。
  • size:返回 Set 中元素的数量。

以下是一个示例:

let set = new Set();
set.add(1);
set.add(2);
set.add(2); // 此时不会重复添加
console.log(set.size); // 输出: 2

set.delete(1);
console.log(set.has(1)); // 输出: false
console.log(set.size); // 输出: 1

set.clear();
console.log(set.size); // 输出: 0

遍历 Set

Set 也可以使用 for...of 循环来遍历:

let set = new Set([1, 2, 3, 4, 5]);

for (let value of set) {
  console.log(value);
}
// 输出:
// 1
// 2
// 3
// 4
// 5

总结

Map 和 Set 是 JavaScript 中非常有用的数据结构。Map 更适合需要高效查找的场景,而 Set 则是存储唯一值的重要工具。它们的灵活性和便利性大大提升了数据管理的效率,适用于多种应用场景。在编程中合理使用这两种数据结构,可以使代码更简洁、可读和高效。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部