- Map的键可以使各种类型的值(包括字符串)
js对象中只能用字符串作为键,有很大的限制,所以引入了Map数据结构。
- Map的键实际上是跟内存地址绑定的,这样就就解决了同名属性碰撞的问题
var map = new Map();
map.set(['a'], 555);
map.get(['a']); //undefined
-
Map的属性和方法
- size
返回Map结构的成员总数
- set(key,value)
此方法返回的是Map本身,所以可以链式调用
- get(key)
如果不存在,返回undefined
has(key) 返回布尔值
delete(key)返回布尔值
clear()
清除所有成员,没有返回值
遍历方法
for (let key of map.keys()){}
for(let value of map.values()){}
for(let [key, value] of map.entries()){}
for(let [key, value] of map){}
- Map转为数组
[...map.keys()]
[...map.values()]
[...map,entries()]
[...map] //结果同上
- 数组转为Map
new Map([[true, 7], [{foo: 3},['abc]]])