本文是重温基础系列文章的第十一篇。
今日感受:注意身体,生病花钱又难受。
本章节复习的是JS中的Map和Set对象,是个集合。
前置知识:
Map和Set对象是在ES6中被引入的,作为一种由 值标记的数据容器。
Map和Set对象承载的数据元素可以按照插入时的顺序,被迭代遍历。
1 Set对象
介绍:
数据结构类似数组,但所有成员的值唯一。
本身为一个构造函数,用来生成 数据结构,使用 方法来添加新成员。
基础使用:
注意:
向 中添加值的时候,不会类型转换,即 和 是不同的。
属性和方法:
属性:
:构造函数,默认就是 函数。
:返回 实例的成员总数。
操作方法:
:添加某个值,返回 Set 结构本身。
:删除某个值,返回一个布尔值,表示删除是否成功。
:返回一个布尔值,表示该值是否为Set的成员。
:清除所有成员,没有返回值。
数组去重:
2 Set的应用
数组去重:
遍历和过滤:
获取并集、交集和差集:
遍历方法:
:返回键名的遍历器。
:返回键值的遍历器。
:返回键值对的遍历器。
:使用回调函数遍历每个成员。
遍历顺序是插入顺序,当保存多个回调函数,只需按照顺序调用。但由于 结构没有键名只有键值,所以 和 是返回结果相同。
并且 还可以使用 直接遍历 。
与数组相同,对每个成员执行操作,且无返回值。
3 Map对象
由于传统的 对象只能用字符串当做键,给开发带来很大限制,ES6增加 数据结构,使得各种类型的值(包括对象)都可以作为键。
结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。基础使用:
注意:
传入数组作为参数,指定键值对的数组。
如果对同一个键多次赋值,后面的值将覆盖前面的值。
如果读取一个未知的键,则返回 。
同样的值的两个实例,在 Map 结构中被视为两个键。
遍历方法: Map 的遍历顺序就是插入顺序。
:返回键名的遍历器。
:返回键值的遍历器。
:返回所有成员的遍历器。
:遍历 Map 的所有成员。
将Map结构转成数组结构:
4 Map与其他数据结构互相转换
Map 转 数组
数组 转 Map
Map 转 对象 如果所有 Map 的键都是字符串,它可以无损地转为对象。
如果有非字符串的键名,那么这个键名会被转成字符串,再作为对象的键名。
对象 转 Map
Map 转 JSON
(1)Map键名都是字符串,转为对象JSON:
(2)Map键名有非字符串,转为数组JSON:
JSON 转 Map
(1)所有键名都是字符串:
(2)整个 JSON 就是一个数组,且每个数组成员本身,又是一个有两个成员的数组:
参考资料
1.阮一峰ES6入门
本部分内容到这结束
领取专属 10元无门槛券
私享最新 技术干货