Appearance
Map
详细讲解 Map 对象
概述
Map 用于存储键值对
对象介绍
实例化
采用 new Map 传入二维数组,前面为
- 数组
new Set([1,2]) - 字符串
new Set(’demo‘) - set
new Set(new Set([1,2,new Set([1,2,3])]))
属性
Set.prototypeSet 的原型对象Set.prototype.size返回 set 对象的元素各数实际上这个是一个访问器属性,定义了 get 方法,通过
forEach,循环返回元素个数
方法
Set.prototype.add()添加一个元素Set.prototype.delete()删除一个元素Set.prototype.clear()清除元素集Set.prototype.has()判断元素是否存在注意只用基础类型判断
Set.prototype.values()获取元素的值集合,返回一个迭代器注意和 Object.keys 区分!!!
Set.prototype.keys()该函数是为了和 Map 对应,时间上在规范里面keys和values是同一个函数Set.prototype.entries()同上效果同 values 一样,但是由于 Set 不包含 key 所以返回的 value 值和键相同
Set.prototype.forEach()迭代循环数组注意该方法 forEach 的 index 属性是元素值而非索引,因为 set 没有索引的概念,为了和 map 保持一致采用值作为索引!!!,规范也是这么写的,详见 tc39
其他知识点
- Set[Symbol.species] 返回 Set 构造函数
- Set.prototype[Symbol.iterator] 是 Set.prototype.values 的引用
适用场景
参看 set 工具库 重点特性如下:
- 数组去重
- 集合操作