TypeScript:Map 对象 作者:马育民 • 2024-11-07 09:26 • 阅读:10007 # 介绍 在 TypeScript 中,`Map` 对象是一种用于存储 **键值对** 的集合。 类似于 JavaScript 中的 `{}`对象,但提供了更强大、更灵活的功能。 >类似Java中的Map类型 # 创建 声明对象时要制定 **键值的类型** 通过 `new` 关键字创建对象 ``` const map: Map = new Map() ``` `` 表示该 `Map` 对象的 **键** 是字符串类型,**值** 是数字类型 ### 创建时添加初始的键值 创建Map,同时添加了两个初始的键值对 ``` let map: Map = new Map([ ['apple', 5], ['banana', 8] ]); ``` # 添加 ``` set(key: K, value: V): Map ``` **参数:** - key:传入健 - value:传入值 **返回值:**返回 Map 对象 ### 例子 ``` map.set('apple', 5); map.set('banana', 8); ``` # 根据key获取value ``` get(key: K): V | undefined ``` **参数:** - key:传入健 **返回值:**如果有key,返回与之对应的value,如果没有key,返回 `undefined` ### 例子 ``` console.log(map.get('apple')); // 输出:5 console.log(map.get('orange')); // 输出:undefined ``` # 删除 根据 key 删除键值对 ``` delete(key: K): boolean ``` **参数:** - key:传入健 **返回值:** - 如果删除成功,该方法返回 true - 如果指定键不存在,返回 false ### 例子 ``` console.log(map.delete('apple')); // 输出:true console.log(map.delete('orange')); // 输出:false ``` # 判断键是否存在 ``` has(key: K): boolean ``` **参数:** - key:传入健 **返回值:**如果存在返回 `true`,如果不存在返回 `false` ### 例子 ``` console.log(map.has('apple')); // 输出:true console.log(map.has('orange')); // 输出:false ``` # 清空 ``` map.clear(); ``` # 获取键值对 数量 ``` console.log(map.size); // 输出:2 ``` # 遍历所有键值对 Map 对象提供了多种遍历方式来访问其中的键值对。 ### 使用 for...of ``` for (let [key, value] of map) { console.log(`${key}: ${value}`); } ``` ### 使用 .forEach() 方法 使用 Map对象的 `forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void` 方法 ``` map.forEach((value, key) => { console.log(`${key}: ${value}`); }); ``` ### 使用 .entries() 方法 `entries(): IterableIterator<[K, V]>`返回一个包含 Map 中所有键值对的迭代器,每个元素是一个 `[key, value]` 数组。 ``` for (const [key, value] of map.entries()) { console.log(key, value); } ``` # 遍历所有key `keys(): IterableIterator`返回一个包含 Map 中所有键的迭代器。 ``` for (const key of map.keys()) { console.log(key); } ``` # 遍历所有value `values(): IterableIterator`返回一个包含 Map 中所有值的迭代器。 ``` for (const value of map.values()) { console.log(value); } ``` 参考: https://cloud.tencent.com/developer/article/2300009 https://www.runoob.com/typescript/ts-map.html 原文出处:http://malaoshi.top/show_1IX8kOKNA9x9.html