ES6-Map和Set对象以及Iterator

1.Iterator对象

主要功能:
  1. 为各种数据结构,提供一个统一的,简便的访问接口。
  2. 使得数据结构的成员能够按某种次序排列,是有序的。
  3. 是 ES6 创造了一种新的遍历命令 for…of 循环,Iterator 接口主要供 for…of 消费。
使用方法
  1. 如果有 Iterator 对象,则可以使用 next 方法进行遍历,就像一个指针,会按顺序指向下一项

2.set对象

let set = new Set( [1, 1, 2, '3', '3', true, true, {1:1}, {1:1}] )
console.log(set)  // Set(7) { 1, 2, "3", true, {1: 1}, {1: 1} }

// 以下为 set 对象中常用的方法
set.size       // 6
set.add(7)     // Set(7) { 1, 2, "3", true, {1: 1}, {1: 1}, 7 }
set.delete(1)  // true
set.has(2)     // true
let key = set.keys()    // SetIterator {2, "3", true, {1:1}, {1:1}, 7}
let value = set.values()  // SetIterator {2, "3", true, {1:1}, {1:1}, 7}
let array = set.entries() // SetIterator {2=>2, "3"=>"3", true=>true, {1:1}=>{1:1}, {1:1}=>{1:1}, 7=>7 }

// 这里主要讲 entries 方法返回的对象
array.next()    // {value: [2,2], done: false}
array.next()    // {value: [{1:1}, {1:1}], done: false}

3.map对象

let map = new Map()
map.set(1, 1)
map.set(3, 3)
map.set(5, 5)
console.log(map)  // Map(3) {1 => 1, 3 => 3, 5 => 5}

// 以下为 map 对象中常用的方法
map.size        // 3
map.set(7, 7)   // Map(4) {1 => 1, 3 => 3, 5 => 5, 7 => 7}
map.get(1)      // 1
map.get(2)      // undefined
map.has(3)      // true
map.has(4)      // false
map.delete(7)   // true
map.delete(6)   // false
let key = map.keys()       // MapIterator {1, 3, 5}
let value = map.values()   // MapIterator {1, 3, 5}
let array = map.entries()  // MapIterator {1 => 1, 3 => 3, 5 => 5}, entries 返回的是 map 中的健值对

// 这里的 map.keys 和 map.values 方法返回的都是一个 Iterator 对象
key.next()       // {value: 1, done: false}, 会将指向对象的节点返回
key.next()       // {value: 3, done: false}
key.next()       // {value: 5, done: false}
key.next()       // {value: undefined, done: true}, 如果遍历玩,done 属性就会为 true
console.log(key)   // MapIterator {}
console.log(map)   // Map(3) {1 => 1, 3 => 3, 5 => 5}, 不会改变原来的对象
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值