手写forEach

1.forEach

摘自js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素 - 听风是风 - 博客园

        forEach也属于完整遍历数组的方法,并会对数组每项元素执行提供的回调函数。

arr.forEach(function(self,index,arr){},this);

        self:数组当前遍历的元素,默认从左往右依次获取数组元素。

        index:数组当前元素的索引,第一个元素索引为0,依次类推。

        arr:当前遍历的数组。

        this:回调函数中this指向。

2.实现forEach

  1. 每个数组都能调用forEach方法,所以他是挂载在Array类的原型对象上的方法。
  2. 对传入的参数进行验证,首先自己应该是一个数组对象,验证的方式有三种:Array.isArray()、arr instanceof Array 、 Object.prototype.toString.call ==='[object Array]'
  3. 最后遍历每个元素,并执行对应的加工方法fn
        Array.prototype._forEach = function(fn,_this){
            if(typeof fn!='function') throw '需要传入一个函数';
            if(!this instanceof Array) throw '需要传入一个数组';
            let length = this.length;
            for(let i=0;i<length;i++)
            {
                fn.call(_this,this[i],i,this)
            }
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值