Iterator 是 ES6 引入的一种新的遍历机制
他的实现思路为:
通过 Symbol.iterator 创建一个迭代器,指向当前数据结构的起始位置
随后通过 next 方法进行向下迭代指向下一个位置,
next 方法会返回当前位置的对象,
对象包含了 value 和 done 两个属性,
value 是当前属性的值,
done 用于判断是否遍历结束
done 为 true 时则遍历结束
看一个例子:
const items = ["zero", "one", "two"];
const it = items[Symbol.iterator]();
it.next();
>{value: "zero", done: false}
it.next();
>{value: "one", done: false}
it.next();
>{value: "two", done: false}
it.next();
>{value: undefined, done: true}