map方法学习,封装函数--实现Array.prototype.map()的功能

封装函数–实现Array.prototype.map()的功能

Array.prototype.map( )这个方法是很有使用价值的,可以省下循环的步骤,处理数组中的每个元素,同时返回一个新的数组。我使用闭包封装了一个方法来实现类似的功能。


Array.prototype.map()方法

  • 首先看一下Array.prototype.map()方法
  • map() 方法创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数。
  • map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。
    //map方法
    var data = [10, 20, 30, 40];
    var roots = data.map(function (ele) {
        return ele / 10;
    });
    console.log(roots);//[1,2,3,4]
    console.log(data);//[10, 20, 30, 40]

封装函数实现Array.prototype.map()方法

下面是实现map方法的函数封装。
暂时只是实现了基础功能,具体还有很多优化可以做。

   function myMap(data, fn) {
        var arg = [];
        for (var i = 0; i < data.length; i++) {
            (function (ele, fn) {
            //每一个元素处理后放入新数组
                arg.push(fn(ele));
            })(data[i], fn);
        }
        return arg;
    }
    var data = [10, 20, 30, 40];
    var roots= myMap(data, function (ele) {
        return ele / 10;
    });
    console.log(roots);//[1,2,3,4]
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值