无序不可重复的集合
1.实例化数组
new Set(); new Set([]); new Set('terry');// t e r y
2.Set实例能够调用的方法数据结构
Set 结构的实例有如下属性。 Set.prototype.constructor:构造函数,默认就是Set函数。 Set.prototype.size:返回Set实例的成员总数。 Set 结构的实例有如下方法。 add(value):添加某个值,返回Set结构自己 delete(value):删除某个值,返回一个布尔值,表示删除是否成功。 has(value):返回一个布尔值,表示该值是否为Set的成员。 clear():清除全部成员,没有返回值。 keys():返回键名的遍历器 values():返回键值的遍历器 entries():返回键值对的遍历器 forEach():使用回调函数遍历每一个成员 Set自己就是就是一个构造函数,用来生成Set数据结构 let set = new Set(); set.add(1); //添加数据 set.add(2); set.add(3); set.add(2); console.log(set); //set{1,2,3}
应用:去除数组中重复元素的方法函数
let arr = [1,2.3,4,3,2,1]; let set = new Set(arr); let result = [...set]; //set转换为数组
Map能够接受一个数组做为参数,该数组的成员是一个个表示键值对的数组prototype
let map = new Map(); map.set('name','terry'); const map = new Map([ ['name', '张三'], ['title', 'Author'] ]);
Map 结构的实例有如下属性。指针
Set.prototype.size:返回 Map 结构的成员总数。
Map 结构的实例有如下方法。code
set(key, value):set方法设置键名key对应的键值为value,而后返回整个 Map 结构。若是key已经有值,则键值会被更新,不然就新生成该键。 get(key):get方法读取key对应的键值,若是找不到key,返回undefined。 has(key):has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。 delete(key):delete方法删除某个键,返回true。若是删除失败,返回false。 clear():清除全部成员,没有返回值 keys():返回键名的遍历器 values():返回键值的遍历器 entries():返回键值对的遍历器 forEach():使用回调函数遍历每一个成员
遍历器(Iterator)就是这样一种机制。它是一种接口,为各类不一样的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就能够完成遍历操做(即依次处理该数据结构的全部成员)对象
Iterator 的做用有三个:
Iterator 的遍历过程:接口
默认Iterator接口部署
Iterator 接口的目的,就是为全部数据结构,提供了一种统一的访问机制,即for...of循环(详见下文)。当使用for...of循环遍历某种数据结构时,该循环会自动去寻找 Iterator 接口。一种数据结构只要部署了 Iterator 接口,咱们就称这种数据结构是“可遍历的”(iterable)。
能够经过以下方法访问Iterator对象get
var iterator = iterObj[Symbol.iterator]();
原生具有 Iterator 接口的数据结构以下
Array Map Set String TypedArray 函数的 arguments 对象 NodeList 对象