迭代器(Iterator)是一种机制,它的底层部署了Iterator接口。任何部署Iterator接口的数据结构都可以完成遍历操作。迭代器主要供for…of消费。
迭代器实现了Iterator接口,只要实现了Iterator就可以使用for-of遍历
// console.log(Object.keys());
var arr = [1,2,3,4]
// keys values entries 当前变量是迭代器对象
console.log(arr.keys());
console.log(arr.values());
console.log(arr.entries());
Iterator的遍历过程:
- 创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
- 第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。
- 第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。
- 不断调用指针对象的next方法,直到它指向数据结构的结束位置。
for…of实现原理:
for-of实现原理就是调用迭代器的next()方法,第一次调用将指针指向数据结构的第一个成员,依次调用依次指向,直到没有成员可以指向,done为true
var arr = [1,2,3,4]
let keys=arr