目录
1、概念
- 1、概念
- 2、MDN链接地址
- 3、代码
-
- 3.1、功能函数
- 3.2、函数调用
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]