es6中Set和Map数据结构

1、数据结构:Map

键值对:与对象不同的是键和值可以是任何类型

Map实例的属性和操作方法

  • size 属性:size属性返回 Map 结构的成员总数。
  • Map.prototype.set(key, value):set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。
  • Map.prototype.get(key):get方法读取key对应的键值,如果找不到key,返回undefined。
  • Map.prototype.has(key):has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。
  • Map.prototype.delete(key):delete方法删除某个键,返回true。如果删除失败,返回false。
  • Map.prototype.clear():clear方法清除所有成员,没有返回值。

es6中Set和Map数据结构
遍历方法

Map 结构原生提供三个遍历器生成函数和一个遍历方法。

  • Map.prototype.keys():返回键名的遍历器。
  • Map.prototype.values():返回键值的遍历器。
  • Map.prototype.entries():返回所有成员的遍历器。
  • Map.prototype.forEach():遍历 Map 的所有成员。

es6中Set和Map数据结构
es6中Set和Map数据结构

2、数据结构:Set

集合:可以存储任何数据类型,并且是唯一的

Set实例的属性和方法

  • Set.prototype.constructor:构造函数,就是Set函数
  • Set.prototype.size:返回Set实例的成员总数

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。

操作方法

  • Set.prototype.add(value):添加某个值,返回Set结构本身
  • Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
  • Set.prototype.clear():清除所有成员,没有返回值。

Set本身是一个构造函数,用来生成 Set 数据结构。
es6中Set和Map数据结构
es6中Set和Map数据结构
通过add()方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值。
es6中Set和Map数据结构
es6中Set和Map数据结构
当我们打印{name:“Herry”},最后出来的是false,因为它匹配的不是值,而是地址,地址都是唯一的,所以一直为false

遍历操作

  • Set.prototype.keys():返回键名的遍历器
  • Set.prototype.values():返回键值的遍历器
  • Set.prototype.entries():返回键值对的遍历器
  • Set.prototype.forEach():使用回调函数遍历每个成员

扩展运算符(…)内部使用for…of循环,所以也可以用于 Set 结构。

es6中Set和Map数据结构
es6中Set和Map数据结构