Map

  • 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]]])

你可能感兴趣的:(Map)