一起养成写作习惯!这是我参与「掘金日新计划 · 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对应的键值,若没有则返回undefinedconsole.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