一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情。
Map集合
类似于对象,是键值对的集合,数据可为任意类型。与Object
的区别在于Object
的键
只能是字符串或者Symbols
,但Map
可以为任意类型,且Map
中的键值是有序的
Map
结构的实例方法
-
set(key, value) 设置键值对,返回整个
Map()
结构,若对应键已有值则覆盖原有的值const map = new Map() map.set('name', '小王') const obj = { age: 23 } const fn = () => { console.log('我是函数') } map.set(obj, '对象') map.set(fn, '函数') console.log(map)
可以看到map的键可以使任意的数据类型
,这个是map最显著的一个特点,所以map主要的作用是数据存储
-
get(key) 获取
key
对应的键值,若没有则返回undefined
console.log(map.get(obj)) console.log(map.get('wwww'))
-
has(key) 返回布尔值,查询
key
是否在当前对象中console.log(map.has(obj)) console.log(map.has('wwww'))
- delete(key)
删除
key
对应的键值对,删除成功返回true
否则返回false
- clear()
清除所有键值对,没有返回值
- values()
返回新的
MapIterator
对象,按顺序插入Map
对象中所有value
- keys()
返回新的
MapIterator
对象,按顺序插入Map
对象中所有key
- entries()
返回新的
MapIterator
对象,按顺序插入Map
对象中每个元素的[key,value]
数组
-
forEach(callback,thisArg)
callback(key,value,Map)
必选,对象中每个元素都要执行的回调函数key-当前元素的键 value-当前元素的值 Map-当前正在遍历的对象
map.forEach((key, value) => { console.log(key + '=' + value) })
其中thisArg
参数可选,回调函数执行时的this
的值 ,forEach()
返回值为undefined