十分钟学会Map语法的基本上使用

612 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 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)
    

image.png

可以看到map的键可以使任意的数据类型,这个是map最显著的一个特点,所以map主要的作用是数据存储

  • get(key) 获取key对应的键值,若没有则返回undefined

    console.log(map.get(obj)) console.log(map.get('wwww'))

image.png

  • has(key) 返回布尔值,查询key是否在当前对象中

    console.log(map.has(obj)) console.log(map.has('wwww'))

image.png

  • delete(key) 删除key对应的键值对,删除成功返回true否则返回false

image.png

  • clear() 清除所有键值对,没有返回值
  • values() 返回新的MapIterator对象,按顺序插入Map对象中所有value

image.png

  • keys() 返回新的MapIterator对象,按顺序插入Map对象中所有key

image.png

  • entries() 返回新的MapIterator对象,按顺序插入Map对象中每个元素的[key,value]数组

image.png

  • forEach(callback,thisArg) callback(key,value,Map)必选,对象中每个元素都要执行的回调函数

    key-当前元素的键 value-当前元素的值 Map-当前正在遍历的对象

    map.forEach((key, value) => { console.log(key + '=' + value) })

image.png 其中thisArg参数可选,回调函数执行时的this的值 ,forEach()返回值为undefined