Map 的定义
interface Map< K, V > {
clear(): void;
delete(key: K): boolean;
forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void;
get(key: K): V | undefined;
has(key: K): boolean;
set(key: K, value: V): this;
readonly size: number;
}
Map 的遍历
/*
1.通过 map 定义的 forEach 函数进行遍历
*/
let map = new Map();
map.forEach(
(value, key, map) => {
console.log("value: " + value); // 获取值
console.log("key: " + key); // 获取键
console.log("map: " + map); // 获取当前 map
}
)
/*
2.通过 for 遍历
*/
for (let value of map){
console.log(value); // 获取 [key, value] 数组
console.log(value[0]); // 获取 key
console.log(value[1]); // 获取 value
}
Map 的方法
// 1.set 方法,设置值
map.set(key, value); // 在设置值时,如果 当前 key 已存在,那么设置新的 value 时,会全部覆盖原来的值
// 举例
map.set("person", {
name: "aaa",
age: 12,
sex: "male"
})
console.log(map.get("person")); // { name: 'aaa', age: 12, sex: 'male' }
// 只想要修改年龄
map.set("person", {
age: 14,
})
// 即,不能单独修改某一项,会将值完全覆盖,所以需要写全字段
console.log(map.get("person")); // { age: 14 }
// 2.get 方法,获取值
let value = map.get(key);
// 3.has 方法,查看是否包含该键
let boolean = map.has(key);
// 4.删除方法,删除某个键值对
map.delete(key);
// 5.清空集合
map.clear();
// 6.获取集合长度
console.log(map.size);