您当前的位置: 首页 >  ar

暂无认证

  • 5浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Array.prototype.mymap

发布时间:2021-04-12 20:36:56 ,浏览量:5

目录
  • 1、概念
  • 2、MDN链接地址
  • 3、代码
    • 3.1、功能函数
    • 3.2、函数调用
1、概念

map()方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

2、MDN链接地址

MDN - map

3、代码 3.1、功能函数
Array.prototype.mymap = function(callback, thisPointTo) { const len = this.length; if (len == 0) { throw new TypeError('this is null or not defined'); }; if (typeof callback !== 'function') { throw new TypeError(callback + ' is not a function'); }; // 定义返回数组 let result = [], i = 0; // 使用for循环遍历数据 for (; i < len; i++) { if (i in this) { // 调用回调函数并传入新数组 result[i] = callback.call(thisPointTo, this[i], i, this); }; }; // 返回新数组 return result; }; 
3.2、函数调用
let returnMap = [10, 50, 90].mymap((item, i, data) => { console.log(item); console.log(i); // 原始值不变 console.log(data); // [10, 50, 90] // 注意 : 使用箭头函数时, // this.a 的值为 undefined console.log(this.thisPointTo); item = 100; return item; }, { thisPointTo: 1 }); console.log('returnMap:', returnMap); // returnMap: (3) [100, 100, 100] let returnMap = [10, 50, 90].mymap(function(item, i, data) { console.log(item); console.log(i); // 原始值不变 console.log(data); // [10, 50, 90] // 注意 : 不使用箭头函数时, // this.a的值为传入的值 console.log(this.thisPointTo); // 返回值 item = 100; return item; }, { thisPointTo: 1 }); console.log('returnMap:', returnMap); // returnMap: (3) [100, 100, 100] 
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.4015s