<h1>外部迭代器 </h1>
<p>外部迭代器必须显示的请求迭代器下一个元素。</p>
<p>外部迭代器增加了一些调用的复杂度,但相对也增强了迭代器的灵活性,我们可以手工控制这个迭代的过程或者顺序。</p>
<p>外部迭代器的例子:比较两个数组对应的值是否相等</p>
<script>
var Iterator = function(obj){
var current = 0;
var next = function(){
current++;
};
var isDone = function(){
return current >= obj.length;
};
var getCurrItem = function(){
return obj[current];
};
return {
next: next,
isDone: isDone,
getCurrItem: getCurrItem
}
};
//再看看如何编写compare函数
var compare = function( iterator1, iterator2 ){
var bool = true;
while( !iterator1.isDone() || !iterator2.isDone() ){
if( iterator1.getCurrItem() !== iterator2.getCurrItem() ){
bool = false;
alert(false)
return bool;
}
iterator1.next();
iterator2.next();
}
if( bool ){
alert("iterator1 和 iterator2相等");
}
}
var iterator1 = Iterator( [1,2,3] );
var iterator2 = Iterator( [1,2] );
compare( iterator1, iterator2 )
</script>
js迭代器——外部迭代器
最新推荐文章于 2024-08-01 19:18:34 发布