循环的问题

如果你曾用 JS 编写过程序,那么或许写过如下代码:

var colors = ["red", "green", "blue"];

for (var i = 0, len = colors.length; i < len; i++) {
    console.log(colors[i]);
}

此处使用了 for 循环的标准方式,借助 i 变量来追踪 colors 数组中的位置索引。当 i 的值小于暂存在 len 变量中的数组长度时,循环每一次执行都会递增 i 的值。

虽然这个循环非常直观,然而当它被嵌套使用并要追踪多个变量时,情况就会变得非常复杂。额外的复杂度会引发错误,而 for 循环的样板性也增加了自身出错的可能性,因为相似的代码会被写在多个地方。迭代器正是用来解决此问题的。