Skip to content

字典(Map)结构 ​

常用 API ​

shell
操作     方法                  时间复杂度   说明
新增     map.set(key, value)    O(1)     键可设为任意类型(函数 / 对象 / DOM 元素等)
修改     map.set(key, value)    O(1)     键可设为任意类型(函数 / 对象 / DOM 元素等)
访问     map.get(key)           O(1)     获取键对应的值(无则返回 undefined)
删除     map.delete(key)        O(1)     删除指定键
判断存在  map.has(key)           O(1)     判断键是否存在
遍历     map.forEach()          O(n)     遍历键值对(按插入顺序)
长度     map.size               O(1)     直接获取键值对数量

字典与对象对比 ​

shell
特性       Map              Object
键类型     任意类型           字符串 / Symbol
顺序      插入顺序           ES6 后插入顺序(部分场景)
长度获取   size属性(O (1))  Object.keys(obj).length(O(n))
遍历      直接遍历键值对      需手动处理原型链
频繁读写   性能更好           性能略差

适用场景 ​

非字符串键映射:const domMap = new Map(); domMap.set(document.body, { width: 100 })(用 DOM 元素作键)

频繁增删遍历:const cache = new Map()(缓存数据,频繁读写)

有序键值对:const sortedMap = new Map([['a', 1], ['b', 2]])(按插入顺序遍历)