js写一个能遍历对象和数组的forEach函数

代码如下:

//写一个能遍历对象和数组通用的forEach函数
function forEach(obj,fn){
    var key;
    if(obj instanceof Array){
	//准确判断是不是数组
	obj.forEach(function(item,index){
	    fn(index,item);
	})
   }else if(obj instanceof Object){
      //对象
     for (key in obj) {
         if(obj.hasOwnProperty(key)){ //自身的属性,排除原型的属性
             fn(key,obj[key])
         }                        
      }
  }else{
      console.log('您传入的既不是数组也不是对象')
  }
}
			
var arr = [1,2,3];
//注意:这里参数的顺序换了,为了和对象的遍历格式一致
forEach(arr,function(index,item){
    console.log(index,item)
});
var obj = {x:100,y:200,z:300};
forEach(obj,function(key,value){
    console.log(key,value)
})
forEach('123',function(key,value){
   console.log(key,value)
})

发布者

cylyiou

cylyiou

分享前端知识

支付宝扫码打赏微信打赏

如果文章对您有帮助,不妨移至上方按钮小额赞助我一下,让我有动力继续写出高质量的教程。

《js写一个能遍历对象和数组的forEach函数》有1个想法

发表评论

电子邮件地址不会被公开。