螺竹编程
发布于 2024-05-27 / 3 阅读
0

TypeScript/集合:Map

在 TypeScript 中,Map 是一种用于存储键值对的集合类型。与 Set 类似,Map 中的键和值都可以是任意类型的,且每个键只能出现一次。

定义一个 Map 的语法如下:

let myMap = new Map<string, number>();

这里的 myMap 是一个空的 Map,它可以存储键为字符串类型,值为数字类型的键值对。也可以在创建 Map 的同时指定初始值,例如:

let myMap = new Map<string, number>([
  ["a", 1],
  ["b", 2],
  ["c", 3]
]);

这里的 myMap 包含了三个键值对,分别是 "a": 1"b": 2"c": 3

Map 对象提供了一系列方法用于添加、删除和查找元素等操作。例如,可以使用 set() 方法向 Map 中添加新的键值对,使用 delete() 方法删除键值对,使用 get() 方法查找键对应的值。例如:

let myMap = new Map<string, number>();
myMap.set("a", 1); // 添加键值对 "a": 1 到 Map 中
myMap.set("b", 2); // 添加键值对 "b": 2 到 Map 中
myMap.set("c", 3); // 添加键值对 "c": 3 到 Map 中

myMap.delete("b"); // 从 Map 中删除键为 "b" 的键值对

console.log(myMap.get("a")); // 输出 1
console.log(myMap.get("b")); // 输出 undefined

Map 对象还可以使用 forEach() 方法来遍历集合中的键值对。例如:

let myMap = new Map<string, number>([
  ["a", 1],
  ["b", 2],
  ["c", 3]
]);

myMap.forEach(function(value, key) {
  console.log(key + " = " + value);
});

// 输出:
// a = 1
// b = 2
// c = 3

需要注意的是,Map 中的键必须是唯一的,因此,如果向 Map 中添加重复的键,后面的值会覆盖前面的值。另外,Map 中的键值对没有特定的顺序,因此,不能使用索引来访问 Map 中的元素。如果需要按照一定的顺序访问 Map 中的键值对,可以将 Map 转换成数组,然后再进行操作。