迭代器与生成器
一、迭代器的特征 迭代器有一个next()方法,每次调用时会返回一个对象,该对象的结构为{value:xxx,done:true},其中value表示下次应该返回的值,done表示是否还有值可提供。 当没有值可提供时,done为true,如果迭代器在迭代结束时使用了return xxx,则value为xxx,否则为undefined。 function createIterator(items) { var i = 0 ; return { next: function () { var done = (i >= items.length); var value = !done ? items[i ] : undefined; return { done: done, value: value }; } }; } var iterator = createIterator([1, 2, 3 ]); console.log(iterator.next()); // "{ value: 1, done: false }" console.log(iterator.next()); // "{ value: 2, done: false }" console.log(iterator.next()); // "{ value: 3, done: false }" console.log