Set
Set是ES6中提供的一种新的数据结构。类似于数组,但是成员值都是唯一的,不会重复。
它本身是一个构造函数,生成Set数据结构。
var s=new Set();
属性:
Set.prototype.constructor:指向构造函数Set
Set.prototype.size:返回set实例的成员总数
方法:
add(value):添加value,并返回Set结构本身
delete(value):删除value,返回布尔值,表示是否删除成功
has(value):返回布尔值,表示value是否为set的成员
clear():清除所有成员
遍历操作
key():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
Map
Object,Map均为Hash结构(键值对集合)
区别:
Object键名只能是字符串形式,Map的键名可以是任意类型(包括对象)。
总的来说,Map是一种更完善的Hash结构的实现。如果你需要“键值对”的数据结构,Map比Object更合适。
实例的属性和方法:
size属性 返回Map成员总数
set(key, value) 设置键值对,返回Map本身,所以可以链式
get(key) 读取key对应的值,找不到返回undefined
has(key) 返回布尔值,表示是否存在
delete(key) 删除某键,返回布尔值,表示是否成功删除
clear() 清空所有成员,无返回值。
遍历方法
keys()
values()
entries()
forEach(),接受第二个参数,绑定回调函数的this