提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示
主要解决:不同的方式来遍历整个整合对象。
何时使用:遍历一个聚合对象。
如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。
关键代码:定义接口:hasNext, next。
class Container{constructor(list){this.list = list;}getIterator(){return new Iterator(this)}}class Iterator{constructor(container){this.list = container.list;this.index = 0;}hasNext(){return this.index < this.list.length}next(){if(this.hasNext()){return this.list[this.index++]}return null}}const container = new Container([1,2,3,4,5])const iterator = new Iterator(container);while(iterator.hasNext()){console.log(iterator.next())}
总结
- 好用
