在JavaScript中,
迭代器
是一种允许我们遍历集合
中元素的对象。迭代器对象具有一个next()
方法,该方法返回value
和done
。value
是当前迭代的值,done
属性是一个布尔值,表示是否到达了集合的末尾。
迭代器协议
一个迭代器对象必须具备以下特性:
-
next()
方法:每次调用返回一个对象,其结构为{value:...,done:...}
。如果迭代完成,value
可能是任意值,done
则为true
。 - 可选的
return()
方法:允许提前终止迭代,其可选地返回一个值。 - 可选的
throw()
方法:允许在迭代过程中抛出错误。
创建迭代器
使用Symbol.iterator
来实现迭代器。
生成器函数
生成器函数
是实现迭代器的一种更简便的方式。生成器函数使用function*
语法定义,并且可以使用yield
关键字来产生一系列值。当生成器函数被调用时,它返回一个迭代器对象,该对象可以使用next()
方法来迭代。