# Set 和 Map 数据结构
# Set
Set.prototype.size:返回Set实例的成员总数。Set.prototype.add(value):添加某个值,返回Set结构本身。Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。Set.prototype.clear():清除所有成员,没有返回值。Set.prototype.keys():返回键名的遍历器Set.prototype.values():返回键值的遍历器Set.prototype.entries():返回键值对的遍历器Set.prototype.forEach():使用回调函数遍历每个成员
const set = new Set([1, 2, 3, 4, 4]);
[...set];
// [1, 2, 3, 4]
[...new Set([NaN, NaN])]; // [NaN]
# WeakSet
WeakSet的成员只能是对象,而不能是其他类型的值WeakSet中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用WeakSet没有size属性,没有办法遍历它的成员。WeakSet.prototype.add(value):向WeakSet实例添加一个新成员。WeakSet.prototype.delete(value):清除WeakSet实例的指定成员。WeakSet.prototype.has(value):返回一个布尔值,表示某个值是否在WeakSet实例之中。
# Map
和对象类似,对象的
key只能是 string,Map的key可以使用任意类型的值。Map.sizeMap.prototype.set(key, value)Map.prototype.get(key)Map.prototype.has(key)Map.prototype.delete(key)Map.prototype.clear()Map.prototype.keys():返回键名的遍历器。Map.prototype.values():返回键值的遍历器。Map.prototype.entries():返回所有成员的遍历器。Map.prototype.forEach():遍历Map的所有成员。需要特别注意的是,Map的遍历顺序就是插入顺序。
# WeakMap
WeakMap只接受对象作为键名(null除外)WeakMap的键名所指向的对象,不计入垃圾回收机制。WeakMap没有遍历操作(即没有keys()、values()和entries()方法),也没有size属性。WeakMap无法清空,即不支持clear方法。因此,WeakMap只有四个方法可用:get()、set()、has()、delete()。
← 块级作用域 数字计算处理常见函数 →