js迭代器之倒序访问迭代器及终止迭代器

<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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值