ES6:Set和Map数据结构

2017-08-11  本文已影响14人  你看Ta好像条狗啊

Set数据结构

Set结构类似数组,但它的所有成员的值是唯一的,没有重复值。Set本身是一个构造函数,用来生成Set数据结构。

Set实例有以下属性:
Set.prototype.constructor: 构造函数,默认为Set函数
Set.prototype.size: 返回Set实例的成员总数

Set实例的四个操作方法:
add(value):添加某个值,返回Set函数本身,重复添加同一个值无效
delete(value):删除某个值,返回布尔值,判断该值是否删除成功
has(value):返回布尔值,判断参数是否为该成员
clear():清除所有成员,无返回值

Set实例的四种遍历方法:
keys():返回一个键名的遍历器
values():返回一个键值的遍历器
entries():返回一个键值对的遍历器
forEach():使用回调函数遍历每个成员

PS:Array.from方法可以将Set结构转为数组。 若要去除数组中的重复属性,可先用Set结构,然后转为数组结构。Set实例默认可遍历,遍历方法为values。 Set.prototype[Symbol.iterator] === Set.prototype.values

Map数据结构

Map结构类似对象,也是键值对的集合。但键的范围不限于字符串.

Map实例有以下属性:
size属性: 返回Map实例的成员总数

let map = new Map();
map.set('foo', true).set('bar', false);
map.size  // 2

Map结构的五种操作方法
set(key, value):设置key所对应的值,然后返回整个Map结构, 如果key已经有值,则会覆盖掉前面的值。 因为返回的是Map本身,故可以使用链式写法( let map = new Map.set(1, 'a').set(2, 'b'); )
get(key):返回key所对应的键值,如果找不到key,则返回undefined
has(key):返回一个布尔值,判断参数是否为该成员
delete(key):删除键,返回一个布尔值,判断是否成功删除
clear():清除所有成员,无返回值

Map结构的四种遍历方法
keys():返回一个键名的遍历器
values():返回一个键值的遍历器
entries():返回一个键值对的遍历器
forEach():遍历所有Map成员

PS:Map转化为数组,通过使用扩展运算符(...)

let map = new Map().set(true, 7).set({foo: 3}, ['acb']);
[...map]  //  [[true, 7], [{foo: 3}, ['acb']]]

数组转化为Map,将数组传入Map的构造函数即可

let map = new Map([数组])

Map转为对象,前提,Map中的所有键均为String型

上一篇下一篇

猜你喜欢

热点阅读