JavaScript之ES3.0模拟map和reduce

本文介绍在ES3.0环境下如何实现数组的map和reduce方法,以确保代码能在低版本浏览器上正常运行,避免因浏览器兼容性问题导致的Bug。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        我们知道浏览器的发展是相对快速的,当然浏览器的不断更新同样面临着前端的更新,在我们前端编程中由于用户所用浏览器的不同,我们是必须要做兼容性处理的,有些浏览器的版本比较低,一些前端语言不兼容,做方法的兼容性处理衡很好的避免Bug的出现。

        ES3.0实现数组map方法
var map = Array.prototype.map ? function(a,f){ return a.map(f)} : function(a,f){
        var results = [];
        for(var i = 0; i < a.length; i ++){
            if(i in a){
                results[i] = f.call(null,a[i],i,a);
            }
        }  return results;
}
        ES3.0实现数组reduce方法
        
var reduce = Array.prototype.reduce ? fucntion(a,f,initial){
    if(arguments.length > 2){
        return a.reduce(f,initial);
    } else {
        return a.reduce(f);
    } : function(a,f,initial){
        var i = 0, len = a.length, num;
        if(arguments.length > 2){
            num = initial;
        } else{
            if(len == 0){ 
                throw TypeError();
            }
            while(i < len){    
                if(i in a){
                    num = a[i++];
                    break;
                } else { i ++;}
            } if(i == len){throw TypeError}
       }
       while(i < len){ if(i in a){ num = f.call(undefined,num,a[i],i,a);} i ++;}     
        return num;
    }
        编程过程中懂的一些原理,对自己对代码的理解有很大的好处。帮到你就收藏下吧。
         --主页传送门--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值