美文网首页
ES6 Map类型简述(类似对象的一种数据结构 键可以是各种类

ES6 Map类型简述(类似对象的一种数据结构 键可以是各种类

作者: 梵仇不是大侠 | 来源:发表于2018-10-16 15:51 被阅读0次

JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。

ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

上面代码使用 Map 结构的set方法,将对象o当作m的一个键,然后又使用get方法读取这个键,接着使用delete方法删除了这个键。

作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

上面代码在新建 Map 实例时,就指定了两个键name和age。 Map构造函数接受数组作为参数,实际上执行的是上面的算法。  

不仅仅是数组,任何具有 Iterator 接口(可遍历)、且每个成员都是一个双元素的数组的数据结构 都可以当作Map构造函数的参数。这就是说,Set和Map都可以用来生成新的 Map

第一个demo是Set作为参数 第二个是Map作为参数 都生成了新的Map

Map多次赋值 后一次的值覆盖前一次的值。如果读取一个未知的键,则返回undefined。

Map多次赋值 后一次的值覆盖前一次的值

Map的实例属性和操作方法:

1.size属性 (返回Map结构下成员总个数)

size属性

2.set(key,value) set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。

key有值 值被更新变为ccc

3.get(key) get方法读取key对应的键值,如果找不到key,返回undefined。

4.has(key) has方法返回一个布尔值(有就是true 没有就是false),表示某个键是否在当前 Map 对象之中 。

5.delete(key) delete方法删除某个键,返回true。如果删除失败,返回false。

6.clear() clear方法清除所有成员,,没有返回值 这个就不写例子了。

Map的遍历方法:


注意的是,Map的遍历顺序就是插入顺序

Map 结构转为数组结构,比较快速的方法是使用扩展运算符(...)。


Map转换为数组结构用 ...扩展运算符

数组转化为Map,直接将数组带入Map即可。


数组转Map

Map可以无损的转换对象。

Map转换对象

Map转换JSON 分两种情况:

一种情况是,Map 的键名都是字符串,这时可以选择转为对象 JSON(先把Map转成对象再转JSON);

第二种情况,Map 的键名有非字符串,这时可以选择转为数组 JSON(先把Map转成数组再转JSON);


Map转成对象Json 先转对象再转JSON Map通过扩展运算符..转换为数组 在转换为数组JSON

相关文章

  • ES6中的 Map Set 使用汇总

    Map ES6提供了Map数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值,包...

  • ES6中的Map和Set

    Map 一、Map是什么?es6 新提出的一种引用类型的数据结构 类似于对象。Map对象保存键值对。任何值(对象或...

  • 关于Map数据结构

    关于Map数据结构 Map数据结构类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对...

  • 模拟实现ES6的Map数据结构

    大家都知道ES6中的Map是新增的一种数据结构。它类似对象,但是对象的键只能是字符串,Map的键不限定是字符串,M...

  • ES6 Map和Set

    Map Map是一个使用键值对存储数据的数据结构,类似Object对象,但是区别于对象的是:Map的键可以是任意类...

  • ES6 Map类型简述(类似对象的一种数据结构 键可以是各种类

    JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键...

  • 对象:Map

    Map 数据结构。 它类似于一般对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可...

  • ES6(七)Set与Map2

    ES6 的 Map ES6 的 Map类型是键值对的有序列表,而键和值都可以是任意类型。 键的比较使用的是Obje...

  • 帮大家理解ES6中的Map

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

  • ES6--Set/Map

    Map Map的结构和Object类似,都是键值对的形式。但是Map的键不仅仅局限于字符串。他可以是各种类型的值。...

网友评论

      本文标题:ES6 Map类型简述(类似对象的一种数据结构 键可以是各种类

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