TypeScript Map 对象学习笔记

什么是 Map 对象?

Map 是一种键值对的数据结构,它与 JavaScript 中的 Object 类似,但是 Map 允许键不仅仅是字符串类型,而可以是任何类型的值。

在 TypeScript 中,可以通过以下方式创建一个 Map 对象:

Copy Code
let myMap = new Map();

Map 方法介绍

set()

向 Map 对象中添加新的键值对:

Copy Code
myMap.set(key, value);

例如:

typescriptCopy Code
let myMap = new Map(); myMap.set('name', 'Tom'); myMap.set(1, 'One');

get()

获取 Map 对象中指定键的值:

Copy Code
myMap.get(key);

例如:

typescriptCopy Code
let myMap = new Map(); myMap.set('name', 'Tom'); myMap.set(1, 'One'); console.log(myMap.get('name')); // 输出 "Tom" console.log(myMap.get(1)); // 输出 "One"

has()

判断一个键是否存在于 Map 对象中:

Copy Code
myMap.has(key);

例如:

typescriptCopy Code
let myMap = new Map(); myMap.set('name', 'Tom'); myMap.set(1, 'One'); console.log(myMap.has('name')); // 输出 true console.log(myMap.has(2)); // 输出 false

delete()

删除 Map 对象中指定键的键值对:

Copy Code
myMap.delete(key);

例如:

typescriptCopy Code
let myMap = new Map(); myMap.set('name', 'Tom'); myMap.set(1, 'One'); myMap.delete('name'); console.log(myMap); // 输出 Map(1) {1 => "One"}

clear()

删除 Map 对象中所有的键值对:

Copy Code
myMap.clear();

例如:

typescriptCopy Code
let myMap = new Map(); myMap.set('name', 'Tom'); myMap.set(1, 'One'); myMap.clear(); console.log(myMap); // 输出 Map(0) {}

Map 实例

下面是一个使用 Map 对象存储学生信息的示例:

typescriptCopy Code
let studentInfo = new Map(); studentInfo.set('001', { name: 'Tom', age: 18, gender: 'male' }); studentInfo.set('002', { name: 'Lily', age: 17, gender: 'female' }); console.log(studentInfo.get('001')); // 输出 {name: "Tom", age: 18, gender: "male"} console.log(studentInfo.has('003')); // 输出 false

通过上述示例代码,我们可以看到 Map 对象非常适合用于存储和管理键值对形式的数据。