本文实例讲述了ES6新特性五之Set与Map的数据结构。分享给大家供大家参考,具体如下:
1. Set
① 定义:它
类似于数组
,但是成员的值都是唯一的,没有重复的值。函数,用来生成Set数据结构。Set结构有以下属性。
Set.prototype.constructor
:构造函数,默认就是Set函数。
Set.prototype.size
:返回Set的成员总数。
Set数据结构有以下方法。
add(value)
:添加某个值,返回Set结构本身。
delete(value)
:删除某个值,返回一个布尔值,表示删除是否成功。
has(value)
:返回一个布尔值,表示该值是否为Set的成员。
clear()
:清除所有成员,没有返回值。
③ 方法可以将Set结构转为数组
④ Set结构有一个方法,返回一个遍历器。
⑤ Set结构的foreach方法
⑥ Set结构也有keys和entries方法,这时每个值的键名就是键值。
⑦ 数组的map和filter方法的运用
2. Map ① 原因:JavaScript的对象,本质上是键值对的集合,但是只能用字符串当作键。 ② 定义:它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。 ④ 与set 相同
⑤ 只有对同一个对象的引用,Map结构才将其视为同一个键,只要内存地址不一样,就视为两个键。 ⑥ 遍历 Map结构的默认遍历器接口(Symbol.iterator属性),就是entries方法。 ⑦Map还有一个forEach方法,进行遍历。 ⑧与set相同,map可以结合数组的map方法、filter方法,可以实现Map的遍历和过滤。 希望本文所述对大家ECMAScript程序设计有所帮助。map(x){}
: 遍历数组,filter(x){}: 遍历数组,
size
:返回成员总数。
set(key,value)
:设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键。
get(key)
:读取key对应的键值,如果找不到key,返回undefined。
has(key)
:返回一个布尔值,表示某个键是否在Map数据结构中。
delete(key)
:删除某个键,返回true。如果删除失败,返回false。
clear()
:清除所有成员,没有返回值。keys()
:返回键名的遍历器。
values()
:返回键值的遍历器。
entries()
:返回所有成员的遍历器。