本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/06/21/JavaScript%E4%B8%AD%E7%9A%84Map/
摘要
本文主要讲述了:
- 什么是 Map
- 作用
- 实例属性
- 原型方法
- 类型转换
正文
什么是 Map
一种新的键值对实现,是 ES2015 新增的一种引用类型。
作用
对象的键名只能为string
或symbol
,而Map
的键名可以为任意的数据类型。
示例:
1 | const foo = new Map(); |
多次以相同键名存储值,后者会覆盖前者
示例:
1 | const foo = new Map(); |
注意:Map
的键名相等比较使用的是和Set
相同的SameValueZero
算法。
示例:
1 | const foo = new Map(); |
由于Map
实现了Map.prototype[Symbol.iterator]
,因此可以被for...of
迭代。此外,迭代的顺序和插入的顺序是相同的。
示例:
1 | const foo = new Map(); |
实例属性
size
大小
原型方法
set()
设置键值对,返回Map
实例本身
get()
获取键值
has()
判断Map
中是否存在此键名
delete()
从Map
中删除元素
- 如果删除成功,返回
true
- 如果删除失败,返回
false
clear()
清空Map
forEach()
遍历Map
中的值
示例:
1 | const foo = new Map(); |
keys()
返回包含键名的迭代器对象
values()
返回包含键值的迭代器对象
entries()
返回包含有键名和键值组成的数组的迭代器对象
类型转换
其他类型转换成 Set
Array
二维数组
1 | new Map([ |
Set 转换成其他类型
Array
1 | Array.from(new Map().set('a', 'a').set(2, 'b').set(true, 'c')); |
或
1 | [...new Map().set('a', 'a').set(2, 'b').set(true, 'c')]; |
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/06/21/JavaScript%E4%B8%AD%E7%9A%84Map/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2020/06/21/JavaScript%E4%B8%AD%E7%9A%84Map/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。