1.Iterator对象
主要功能:
- 为各种数据结构,提供一个统一的,简便的访问接口。
- 使得数据结构的成员能够按某种次序排列,是有序的。
- 是 ES6 创造了一种新的遍历命令 for…of 循环,Iterator 接口主要供 for…of 消费。
使用方法
- 如果有 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}, 不会改变原来的对象