微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ES6中的Set与Map及Iterator迭代器

Set数据结构

类似于数组,但成员的值是唯一的,没有重复的值

  • 去除数组中的重复成员
    [...new Set(arr)]

  • Set原型对象的属性

  1. constructor 返回当前实例的构造函数认就是Set
  2. size 返回Set实例的成员总数
  1. add(value) 添加某个值,返回Set结构本身
  2. delete(value) 删除某个值,返回一个布尔值,表示删除是否成功
  3. has(value) 判断该值是否是Set成员,返回一个布尔值
  4. clear() 清除所有成员,没有返回值
  5. keys() 返回键名的Iterator遍历器对象
  6. values() 返回键值的Iterator遍历器对象
  7. entries() 返回键值对的Iterator遍历器对象
  8. forEach() 使用回调函数遍历每一个成员

Map数据结构

类似于对象,是键值对的集合,但是的范围包括字符串及其他各种类型的数据(包括对象)
也可接受一个二维数组作为参数,该数组的成员是一个表示键值对的数组

  1. constructor 构造函数认为Map
  2. size 返回Map结构的成员总数
  1. set(key,value) 设置键名及键值,返回整个Map结构。如果键名key存在,键值会被更新,否则就新生成该键
  2. get(key) 读取对于的键值,如果找不到,返回undefined
  3. has(key) 判断该键是否是Map对象成员,返回一个布尔值
  4. delete(key) 删除某个键,返回一个布尔值
  5. clear() 清除所有成员,没有返回值
  6. keys() 返回键名的Iterator迭代器对象
  7. values() 返回键值的Iterator迭代器对象
  8. entries() 返回键值对的Iterator迭代器对象
  9. forEach() 使用回调函数遍历每一个成员

Iterator 遍历器/迭代器

是一种接口,为各种不同的数据结构提供统一的访问机制,即for-of循环。
任何数据结构,只要部署了Iterator接口,就可以完成遍历操作。
一种数据结构只要部署了 Iterator 接口,我们就称这种数据结构是可遍历的(iterable)。

  • 作用:
  1. 为各种数据结构,提供一个统一的,简便的访问接口
  2. 使得数据结构的成员能够按照某种次序排列
  3. Iterator主要供ES6新提出的遍历命令for-of循环使用
console.log(values.next());//{ value: 1, done: false }
console.log(values.next());//{ value: 'hello', done: false }
console.log(values.next());//{ value: undefined, done: true } 

可以使用for-of循环来遍历Iterator对象,或者在while语句中使用done属性来遍历

  • 原生JS具备Iterator接口的数据结构如下:
  1. Set
  2. Map
  3. Array
  4. String
  5. 函数的arguments对象
  6. NodeList对象

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐