用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
2
3
4
5
6
7
8
9
10