跳到主要内容

迭代器模式

迭代器模式 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。理解 统一 “集合” 型数据结构的遍历接口,实现可循环遍历获取集合中各数据项(不关心数据项中的数据结构)。

特点


优点

  • 为遍历不同数据结构的 “集合” 提供统一的接口

  • 能遍历访问 “集合” 数据中的项,不关心项的数据结构

缺点

分类


内部迭代器

内部迭代器 内部定义迭代规则,控制整个迭代过程,外部只需要一次初始调用

场景

  • 场景一: for……of

外部迭代器

外部迭代器 外部显示(手动)的控制迭代下一个数据项

场景

  • 场景二: Generator yield

实现


完整代码

function each(array, callback) {
let index = 0;
const length = array.length;
while (index < length) {
if (callback(index, array[index]) === false) {
break;
}
index++;
}
}

测试用例

const array = [1, 2, 3, 4, 5];
each(array, (index, value) => {
if (value > 3) {
return false;
}
console.log([index, value]);
});