TypeScript 迭代器(Iterator)
如果要从一个数据集中获取一个数据项,可以对这个数据集进行迭代。
JavaScript 提供了许多迭代集合的方法,从简单的 for
循环到 map()
和 filter()
。本节要介绍的迭代器也是一种方案,并且迭代器将迭代的概念直接带入核心语言,同时提供了一种机制来自定义 for...of
循环的行为。
1. 慕课解释
迭代器是一种特殊对象,它符合迭代器协议规范。在 TypeScript 中,我们可以定义一个接口,这个接口上有一个函数类型 next
,next()
方法的返回值类型是 { value: any, done: boolean }
。其中,value
是 any 类型,表示下一个将要返回的值;done
是布尔类型,当没有更多可返回数据时返回 true。迭代器还会保存一个内部指针,用来指向当前集合中值的位置。
迭代器一旦创建,迭代器对象就可以通过重复调用 next()
显式地迭代。