首先要搞清楚map()函数的用法,传入一个函数,函数允许传三个参数(数组每一项,数组索引,数组本身),并且map()函数有返回值,如此一来也就有思路了: Array.prototype.newMap = function(fn,context){ if(typeof fn !== 'function')return; var newArr = []; for(var i = 0;i < this.length;i++){ newArr.push(fn.call(context,this[i],i,this,context)); } return newArr; } //调用 [1,2,3].newMap(function(item){ return item * 2; });//[2,4,6]
首先要搞清楚
map()
函数的用法,传入一个函数,函数允许传三个参数(数组每一项,数组索引,数组本身),并且map()
函数有返回值,如此一来也就有思路了: