js--迭代器之数组与对象迭代器

之所以将这两种迭代器写在同一篇中是因为基于面向对象思想,数组也是对象


//数组迭代

var eachArray = function(arr,fn){

var i = 0 ,len = arr.length;

for(; i < len ; i++){

if(fn.call(arr[i],i,arr[i])===false){

break;

}

}

}


//对象迭代

var eachObject = function(obj,fn){

for(var i in obj){

if(fn.call(obj[i],i,obj[i])===false){

break;

}

}

}


//示例1数组迭代:

var arr = [1,2,1,3,4,5];

eachArray(arr,function(i,data){

console.log(i,data);

});

//结果:

      0,1

      1,2

              2,1

      3,3

              4,4

              5,5

//示例2对象迭代

var obj={

a:'a-r',

b:'b-r',

c:'c-r'

}

eachObject(obj,function(i,data){

console.log(i,data);

});

//结果

  a,a-r

  b,b-r

  c,c-r

//示例三:

eachObject(arr,function(i,data){

console.log(i,data);

});

//结果同示例1


//示例4

eachArray(obj,function(i,data){

console.log(i,data);

});

//结果无任何输出 ,因为对象obj无length属性,取出的len为undefined,break掉了 如想用数组迭代器遍历对象,可将对象转成数组即可


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值