ABCDdouyaer / jiraiya.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

迭代器模式

ABCDdouyaer opened this issue · comments

迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。



function Iterator(arr){
   var index = 0;
   var value = null, done = false;
   var next = function(){
       index >= arr.length ? done = true : done = false;
       value = arr[index];
       return{
           done,
           value,
           index: index++
       }
   }

   return {
       next
   }
}

let result = Iterator(['a', 'b', 'c']);
console.log(result.next());
console.log(result.next());
console.log(result.next());
console.log(result.next());
console.log(result.next());
console.log(result.next());