JavaScript 中的迭代器与生成器
1. 迭代简介
“迭代”(iteration)一词源于拉丁语“itero”,意为“重复”或“再次执行”。在软件领域,“迭代”指按顺序多次重复执行某个程序,通常期望有终止条件。ECMAScript 规范引入了迭代器(iterators)和生成器(generators)这两个高级特性,以实现更简洁、快速和便捷的迭代。
1.1 循环迭代
在 JavaScript 中,最简单的迭代示例之一是计数循环,例如:
for (let i = 1; i <= 10; ++i) {
console.log(i);
}
循环是基本的迭代工具,它允许指定迭代次数和每次迭代要执行的操作。每次循环迭代都会在下次迭代开始前完成执行,且迭代顺序是明确的。
迭代也可在有序集合上进行,在 JavaScript 中,最常见的有序集合示例是数组,例如:
let collection = ['foo', 'bar', 'baz'];
for (let index = 0; index < collection.length; ++index) {
console.log(collection[index]);
}
由于数组有已知长度,且可通过索引访问每个元素,因此可以通过递增索引范围来按顺序遍历整个数组。然而,这种循环的基本过程存在一些不足:
- 特定数据结