js迭代器——外部迭代器

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值