数组map方法底层实现原理

1,543 阅读1分钟
var array = [23, 56, 78, 42, 11, 49]
let ret = array.map((item)=>{
    return item + 1
})
console.log(ret) // [24, 57, 79, 43, 12, 50]

底层实现原理

关键是:使用回调函数处理数组中的每一项

Array.prototype.myMap = function(callback){
    let newArray = []
    //原型方法中,this指的就是Array实例
    this.forEach(oldData => {
        //回调函数处理每一项数据
        let newData = callback(oldData)
        //处理完成后,追加到新数组中
        newArray.push(newData)
    })
    //最终返回新数组
    return newArray
}
//item是形参 实参是oldData
let ret2 = array.myMap(item =>{
    return item - 1
})
console.log(ret2) //[22, 55, 77, 41, 10, 48]