<h1>迭代器模式的定义非常松散,所以我们可以有多种多样的迭代器实现。总的来说,迭代器模式提供了循环访问一个聚合对象中每个元素的方法,但他没有规定
我们一顺序、倒序还是中序来循环遍历聚合对象。 </h1>
<p>下面我们分分钟实现一个倒序访问的迭代器:</p>
<script>
var reveseEach = function( ary, callback ){
for( var l = ary.length - 1; l >= 0; l-- ){
callback.call( ary[l], l, ary[l] );
}
};
reveseEach( [ 1, 2, 3] , function( i, val ){
console.log( val );
})
</script>
<p>中止迭代器:</p>
<p>迭代器可以向普通for循环中的break一样,提供一种跳出循环的方法。</p>
<p>在1.4节jQuery的each函数里有这样一句:</p>
if ( value === false ){
break;
}
<p>这句代码的意思是,约定如果回调函数的执行结果返回FALSE,则提前终止循环。下面我们吧之前的each函数改写一下:</p>
<p>终止迭代器示例:</p>
<script>
var each = function( ary, callback ){
for( var i = 0; i < ary.length; i++ ){
if( callback.call( ary[i], i, ary[i] ) === false ){
break;
}
}
};
each( [11,21,31,41,56], function( i, val ){
if( val > 30 ){
return false;
}
console.log( val );
} )
</script>
js迭代器之倒序访问迭代器及终止迭代器
最新推荐文章于 2022-09-23 09:06:18 发布