1. 迭代器(内部迭代器和外部迭代器)
- 迭代模式:
提供一种方法顺序获得集合对象中的各个元素,是一种最简单也是最常见的设计模式,提供特定的接口。
- 内部迭代器:
本身是函数,定义好内部迭代规则,外部只需一次初始调用 ; 例如:Array.prototypr.forEach 、jQuery.each 等
- 外部迭代器:
本身是函数,执行迭代对象,迭代对象必须显示调用,调用复杂度增加,但灵活性强
2. 外部迭代器模拟
let arr = [1,2,3]
function customIterator(arr2){
let i = 0
let next = function(){
return {
value : arr2[i],
done : arr.length > ++i
}
}
return {
next
}
}
let iter = customIterator(arr)
console.log( iter.next() )
console.log( iter.next() )
console.log( iter.next() )
// 三次打印结果如下图
3. 迭代器的目的
由于前端的快速发展,使得数据结构发生了变化,产生了特定对象或者 set、map 等数据结构,前期的 for 循环遍历是无法迭代的,由此 lterator 就产生了,部署在各种数据结构上,使这些数据能被迭代操作。(for of、… 、Array.from)