什么是 Map 对象
Map 对象是 ES6 中新增的一种数据结构,它类似于 Object,但可以用任何类型的值作为键,不仅限于字符串和 Symbol。Map 对象可以存储不同类型的键值对,键和值均可为任何类型。
如何使用 Map 对象
创建 Map 对象
我们可以通过以下方式创建一个 Map 对象:
const mapObj = new Map();
Map 对象还可以接收一个数组,其中每一个元素都是一个键值对,用以初始化 Map:
const mapObj = new Map([['key1', 'value1'], ['key2', 'value2']]);
设置值
为 Map 对象设置键值对可以使用 set 方法:
mapObj.set(key, value);
获取值
获取 Map 对象中的值可以使用 get 方法:
mapObj.get(key);
判断是否存在指定键
判断 Map 对象中是否存在指定键可以使用 has 方法:
mapObj.has(key);
删除键值对
删除 Map 对象中的指定键值对可以使用 delete 方法:
mapObj.delete(key);
清空 Map 对象
清空 Map 对象中的所有键值对可以使用 clear 方法:
mapObj.clear();
获取 Map 对象的大小
获取 Map 对象的大小(即键值对数量)可以使用 size 属性:
mapObj.size;
Map 对象的优势
相比于使用 Object 来表示键值对的情况,使用 Map 对象有以下优势:
1. 支持任意类型的键
相较于 Object 只能使用字符串或 Symbol 作为键,Map 对象可以使用任意类型的值作为键。
2. 键值对数量容易获取
使用 Object 时,如果要获取键值对的数量,需要使用 Object.keys() 方法获取所有键的数组,然后再使用 length 属性获取数量。而 Map 对象则可以直接使用 size 属性获取键值对数量。
3. 保证插入顺序
Object 并不保证属性的插入顺序和赋值顺序一致,而 Map 对象会按照插入顺序保持键值对的顺序。
Map 对象与 Object 的对比示例
-- -------------------- ---- ------- ----- --- - - ----- --------- ----- -------- -- ----- ------ - --- ------------- ---------- -------- ------------ ---------------------- -- -------- -------------------------------- -- -------- ------------------------------------- -- - ------------------------- -- - ---------------------------------------------- -- ----------------- ------------------------------------------------ -- ----------------- -------- - --------- ------------------ ---------- ------------------------------ -- -------- ------- ------- -------------------------------- -- -------- ------- -------展开代码
结语
ES6 的 Map 对象为 JavaScript 增加了一种更加灵活、方便的数据结构。在实际开发中,我们可以更加自由地使用不同类型的值作为键,并且灵活获取和操作 Map 对象中的键值对。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b728be306f20b3a63dd283