在ES6中,Map 对象是一种新的数据结构,它可以存储键值对,并能够高效地进行增、删、改、查等操作。在前端开发中,Map 对象为我们提供了一种更加灵活和高效的数据存储与处理方式。
Map 对象的基本用法
Map 对象的基本用法和普通的对象一样,我们可以使用new
关键字来创建一个 Map 对象,如下所示:
--- ----- - --- ------
Map 对象也支持传入可迭代的对象作为参数来初始化,如下所示:
--- ----- - --- ----- -------- ------- ------- ---- ---------- ------- ---
这里我们使用了一个二维数组来表示键值对的集合,数组的每一项分别表示键和值。
Map 对象的 set() 方法可以用来添加键值对,如下所示:
--- ----- - --- ------ ----------------- ------- ---------------- ---- ------------------- --------
Map 对象的 get() 方法可以用来获取指定键的值,如下所示:
--- ----- - --- ----- -------- ------- ------- ---- ---------- ------- --- --- ---- - ------------------ -- ----- --- --- - ----------------- -- -- --- ------ - -------------------- -- ------
Map 对象的 has() 方法可以用来判断指定键是否存在,如下所示:
--- ----- - --- ----- -------- ------- ------- ---- ---------- ------- --- --- ------- - ------------------ -- ---- --- -------- - ------------------- -- -----
Map 对象的 delete() 方法可以用来删除指定键,如下所示:
--- ----- - --- ----- -------- ------- ------- ---- ---------- ------- --- --------------------- --- ------- - ------------------ -- -----
除了上述基本操作外,Map 对象还支持多种其他高级操作,如遍历、获取长度等等。
Map 对象的高级用法
遍历
Map 对象支持 for...of 循环来遍历键值对,如下所示:
--- ----- - --- ----- -------- ------- ------- ---- ---------- ------- --- ------- ----- ------ -- ------ - ------------------- - ----------- -
输出结果如下:
---- - --- --- - -- ------ - ----
Map 对象还提供了 keys()、values() 和 entries() 方法,它们分别可以用来获取键的集合、值的集合和键值对的集合,如下所示:
--- ----- - --- ----- -------- ------- ------- ---- ---------- ------- --- --- ---- - ------------- -- ------ --- ------ - --------------- -- ------ --- ------- - ---------------- -- --------
设置默认值
Map 对象的 get() 方法在获取不存在的键时会返回 undefined,我们可以使用 setDefault() 方法来设置默认值,如下所示:
--- ----- - --- ------ ------------------------ ------- ----------------------- ---- -------------------------- -------- --- ---- - ------------------ -- ----- --- ----- - ------------------- -- ---- ---------
WeakMap 对象
Map 对象的一项功能就是存储键值对,但是当某个键不再被引用时,对应的值也不会自动释放。这时候我们可以使用 WeakMap 对象来解决问题,WeakMap 对象的键是弱引用的,当某个键不再被引用时,它对应的值也会被自动释放。
使用方法与 Map 对象基本一致,只是需要使用 WeakMap 替换 Map,示例如下:
--- --------- - --- ---------- --- ---- - - ----- ----- -- --- ---- - - ---- -- -- --- ---- - - ------- ------ -- ------------------- ------- ------------------- ---- ------------------- --------
总结
Map 对象是 ES6 中的一种新型数据结构,它支持存储键值对,并且提供了高效的增、删、改、查等操作。Map 对象的高级用法包括遍历、设置默认值和使用 WeakMap 对象。在实际前端开发中,Map 对象为我们提供了一种更加灵活和高效的数据存储与处理方式。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65a4cadcadd4f0e0ffd2114f