TypeScript Map
在 TypeScript 中,Map
是一种内置的对象类型,它允许你存储键值对,其中键和值可以是任意类型。与普通的 JavaScript 对象不同,Map
允许任何类型的值(对象或原始值)作为键。这使得 Map
在处理复杂数据结构时非常有用。
一、创建 Map
你可以使用 new Map()
来创建一个新的 Map
对象。
let myMap = new Map<string, number>();
在这个例子中,我们创建了一个键为字符串类型,值为数字类型的 Map
。TypeScript 的类型注解是可选的,但提供它们可以帮助你在编译时捕获潜在的错误。
二、设置和获取值
你可以使用 set
方法来添加或更新 Map
中的键值对,使用 get
方法来获取值。
myMap.set('age', 30);
let age = myMap.get('age');
console.log(age); // 输出: 30
如果尝试获取一个不存在的键的值,Map
会返回 undefined
。
三、检查键是否存在
你可以使用 has
方法来检查 Map
中是否存在某个键。
let hasName = myMap.has('name');
console.log(hasName); // 输出: false
四、删除键值对
你可以使用 delete
方法来删除 Map
中的某个键值对。
myMap.delete('age');
let ageAfterDelete = myMap.get('age');
console.log(ageAfterDelete); // 输出: undefined
五、获取 Map 的大小
你可以使用 size
属性来获取 Map
中键值对的数量。
myMap.set('name', 'Alice');
console.log(myMap.size); // 输出: 1
六、遍历 Map
Map
提供了多种遍历方法,包括 forEach
、keys
、values
和 entries
。
forEach
方法允许你对Map
中的每个键值对执行一个函数。
myMap.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
// 输出: name: Alice
keys
方法返回一个迭代器,该迭代器按插入顺序包含了Map
对象中每个键的值。
for (let key of myMap.keys()) {
console.log(key);
}
// 输出: name
values
方法返回一个迭代器,该迭代器按插入顺序包含了Map
对象中每个值。
for (let value of myMap.values()) {
console.log(value);
}
// 输出: Alice
entries
方法返回一个迭代器,该迭代器按插入顺序包含了Map
对象中每个元素的[key, value]
对。
for (let [key, value] of myMap.entries()) {
console.log(`${key}: ${value}`);
}
// 输出: name: Alice
七、清空 Map
你可以使用 clear
方法来清空 Map
中的所有键值对。
myMap.clear();
console.log(myMap.size); // 输出: 0
八、注意事项
Map
中的键是唯一的,如果有重复的键,则后面的值会覆盖前面的值。与普通的 JavaScript 对象不同,
Map
保留了插入的顺序。当使用原始值(如字符串和数字)作为键时,
Map
和对象的行为相似,但Map
允许使用任何类型的值(包括对象)作为键,这是对象做不到的。
通过掌握这些 Map
相关的概念和技巧,你可以在 TypeScript 中更加高效地管理键值对数据,编写出更加健壮和易于维护的代码。
本文地址:https://www.tides.cn/p_typescript-map