◆
数据结构字典详解:JavaScript Map 键值对操作
什么是字典
- 与集合类似,字典也是一种存储唯一值的数据结构,但它是以键值对的形式来存储
ES6中有字典,名为Map
字典(映射)解决的是「按键快速取值」的问题:键唯一,通过键定位对应的值,理想情况下增删查都是 O(1),不必像数组那样遍历比对。
JS 里普通对象也能当字典用,但有两个绕不开的限制:键会被隐式转成字符串,所以对象、数字、NaN 都没法作为真正的键;同时对象自带原型链,toString、constructor 这些继承来的属性会干扰判断,导致「明明没存过却查得到」。Map 把这两个问题都解决了——任意类型都能作键(按引用和 SameValueZero 比较),只存自己的键,还记录插入顺序、有 size 属性可以直接取长度。
需要频繁按键增删的场景优先选 Map;只是描述一个结构固定的数据实体,用普通对象更自然。
示例
Map 的增和改是同一个方法 set:键不存在就新增,已存在则覆盖旧值。这也是「键唯一」的体现。删除用 delete(传键,返回是否删成功),clear 一次清空全部。取值用 get,判断存在用 has。
const m = new Map();
// 增
m.set('a', 'aa');
m.set('b', 'bb');
// 删
m.delete('b');
// m.clear();
// 改
m.set('a', 'aaa');

还没有留言,来发表第一条吧~