字典(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]])(按插入顺序遍历)
