美文网首页
ES6新增map映射表数据类型

ES6新增map映射表数据类型

作者: 易路先登 | 来源:发表于2019-06-19 18:53 被阅读0次

map存储的是一个个的键值对。主要特性介绍如下:

1 获取map
  • 构造函数+set方法
let mapList = new Map();
mapList.set('name','zhangsan');
console.log(mapList);//{"name" => "zhangsan"}
  • 构造函数初始化方法 传入一个特殊的二维数组
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList );//{"name" => "zhangsan", "age" => 18}

需要注意的是内层数组元素个数都为2,映射为一个键值对,超过2个会被忽略,1个会认为该键值对值为undefiend "name" => undefined,0个会认为该键值对键与值均为undefiend undefined => undefined

2 map的长度size
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList.size);//2
3 map的增删改查操作
  • 增 set方法设置不存在的键时即为增
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.set('count',90);
console.log(mapList);
//{"name" => "zhangsan", "age" => 18, "count" => 90}
  • 删 mapList.delete(key),mapList.clear()
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.delete('count');
console.log(mapList);
//{"name" => "zhangsan", "age" => 18}
mapList.clear();
console.log(mapList);
//{}
  • 改 mapList.set(key)设置已有键key时即为更改
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.set('name','lisi');
console.log(mapList);
//{"name" => "lisi", "age" => 18}
  • 查 mapList.get(key)即获取对应键的值,mapList.has(key)即判断有无该键key
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList.has('name'));//true
console.log(mapList.get('name'));//zhangsan
4 遍历
  • let .. of
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
for(let key of mapList.keys()){
  console.log(key);
}
//name age
for(let value of mapList.values()){
  console.log(value);
}
//zhangsan 18
for(let [key,value ]of mapList.entries()){
  console.log(key,value);
}
//name zhangsan
//age 18
  • forEach
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.forEach(function(value,key){
  console.log(value,key);
})
//zhangsan name
//18 "age"

需要注意的是map的key完全可以是引用类型

let mapList = new Map();
let obj = {};
mapList.set(obj,{name:'zhangsan'});
console.log(mapList.get(obj));//{name:'zhangsan'}
4 WeakMap

map的阉割版,键只能为引用类型,没有size属性,没有clear方法,不能遍历
ES6总篇--目录

相关文章

  • ES6新增map映射表数据类型

    map存储的是一个个的键值对。主要特性介绍如下: 1 获取map 构造函数+set方法 构造函数初始化方法 传入一...

  • ES6新增Map和Set数据类型

    Map和Set Map 和 Set 是 ES6 标准新增的数据类型 Map JavaScript的对象(Objec...

  • 前端海底捞不定期跟新

    2017年8月 1,ES6 Map和Set Map ES6中新增的数据类型,类似PHP中的键值对形式结构 Set ...

  • JavaScript Map和Set

    注意:Map和Set是ES6标准新增的数据类型 Map:增强版的Object Object的属性名只能为strin...

  • js基础 - 草稿

    1 常用es6 class类继承;箭头函数;let const;新增的数据类型Symbl;set和map;解构赋值...

  • web前端ES6/7/8新特性

    ES6中新增了哪些数据类型?Symbol类型(基本)Set类型(复杂)Map类型(复杂)WeakSet类型(复杂)...

  • ES6新增了哪些特性?

    ES6新增了哪些特性? const(声明常量),let(声明变量),var(声明变量)全局 map和set数据类型...

  • js中的set和map类型

    Set与map Es6中新增加了两个数据类型set和map类型,下面就看下这两个类型的特性和用法。 一、 Set ...

  • Map和Set

    最新的ES6规范引入了新的数据类型Map Set Map Set

  • 帮大家理解ES6中的Map

    帮大家了解ES6中的map:Map 是 ES6 中新增的数据结构,Map 类似于对象,但普通对象的 key 必须是...

网友评论

      本文标题:ES6新增map映射表数据类型

      本文链接:https://www.haomeiwen.com/subject/wwxlqctx.html