用ES5实现数组的map方法

# 用ES5实现数组的map方法

  • 回调函数的参数有哪些,返回值如何处理
  • 不修改原来的数组
Array.prototype.MyMap = function(fn, context) {
 // 转换类数组
 var arr = Array.prototype.slice.call(this); // 由于是ES5所以就不用...展开符了
 var mappedArr = [];
 for (var i = 0; i < arr.length; i++) {
  // 把当前值、索引、当前数组返回去。调用的时候传到函数参数中 [1,2,3,4].map((curr,index,arr))
  mappedArr.push(fn.call(context, arr[i], i, this));
 }
 return mappedArr;
}
1
2
3
4
5
6
7
8
9
10
上次更新: 2022/7/2 上午7:51:43