JavaScript之Map方法属性
本文最后更新于 2025年8月20日 晚上
参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Weakmap
字典构造函数
1 | |
Map()
Map() 构造函数用于创建并返回一个 Map 对象,需要与 new 关键字配合使用。
Object 只能用 String 和 Symbol 当属性名,结构是“字符串或符号—值”;Map 各种类型的值都可以当作属性名,结构是“值—值”。若需要“键值对”的数据结构,Map 比 Object 更合适。此外,两者都是属性名不能重复,属性值可以重复,且属性名无序。
接收一个参数:
- iterable(可选):可以是一个数组或其他可迭代对象,其元素为键值对(如两个元素的数组等)。每个键值对都会被添加到新的 Map 中,null 会被当做 undefined。
1 | |
字典实例属性
1 | |
size
size 属性用于返回 Map 对象的成员数量,不可以设置该属性来改变 Map 对象的成员数量。
字典实例方法
1 | |
set()
set() 方法用于为 Map 对象添加或更新一个键值对,返回 Map 对象本身。
get()
get() 方法用于获取 Map 对象中指定键的值并返回,如果找不到这个键则返回 undefined。
has()
has() 方法用于判断 Map 对象中是否存在指定键,返回布尔值。
delete()
delete() 方法用于移除 Map 对象中指定的键和其值,返回布尔值。
1 | |
clear()
clear() 方法用于移除 Map 对象中的所有键值对,返回 undefined。
1 | |
keys()
keys() 方法返回一个新的 Iterator 对象。它包含按照顺序插入 Map 对象中每个元素的 key 值。
1 | |
values()
values() 方法返回一个新的 Iterator 对象。它包含按照顺序插入 Map 对象中每个元素的 value 值。
1 | |
entries()
entries() 方法返回一个新的包含 [key, value] 对的 Iterator 对象,返回的迭代器中的迭代顺序与 Map 对象的插入顺序相同。
1 | |
forEach()
forEach() 方法按照插入顺序依次对 Map 中每个键值对执行一次给定的回调函数,返回值为 undefined。
接收两个参数:
- callback(必需):回调函数。
- value(可选),每个迭代的值
- key(可选),每个迭代的键
- map(可选),被迭代的 Map 对象
- thisArg(可选):执行回调函数时 this 绑定对象的值。默认值为 undefined。
1 | |
弱字典构造函数
1 | |
WeakMap()
WeakMap() 构造函数用于创建并返回一个 WeakMap 对象,需要与 new 关键字配合使用。
注意,WeakMap 对象的键只能是 Object 类型,原始数据类型是不能作为键的,值的类型没有限制。
接收一个参数:
- iterable(可选):是一个数组(二元数组)或其他可迭代的且其元素是键值对的对象。 每个键值对都会添加到新的 WeakMap。null 会被当做 undefined。
1 | |
弱字典实例方法
1 | |
set()
set() 方法用于为 WeakMap 对象添加或更新一个键值对,返回 WeakMap 对象本身。
get()
get() 方法用于获取 WeakMap 对象中指定键的值并返回,如果找不到这个键则返回 undefined。
has()
has() 方法用于判断 WeakMap 对象中是否存在指定键,返回布尔值。
delete()
delete() 方法用于移除 WeakMap 对象中指定的键和其值,返回布尔值。