提示:手动实现数组map方法
提示:以下是本篇文章正文内容,下面案例可供参考
一、代码实现
Array.prototype.fakeMap=function (fn,context){
let arr=this
let temp=[]
for(let i = 0;i<arr.length;i++){
let result = fn.call(context,arr[i],i,arr)
temp.push(result)
}
return temp
}
ps: 上面的context 代表触发每个回调方法的对象,在这里,无论他的值是啥都不影响结果,一般就是全局的this
二、测试
let testArray=[1,2,3,4,5]
let resultArray= testArray.fakeMap((item,i)=>{
return {
value:item+1,
index:i
}
})
console.log(resultArray)
/*执行结果
[
{ value: 2, index: 0 },
{ value: 3, index: 1 },
{ value: 4, index: 2 },
{ value: 5, index: 3 },
{ value: 6, index: 4 }
]
*/