JavaScript中map函数的解析和手写代码(面试几乎必问!!)

178 阅读1分钟

1.本文开头先怼出平日里我们对map函数的使用。

var arr = [1,2,3]

    var array = arr.map((item,index)=>{

      return item*3

    })

    console.log(array)

以上就是map方法,主要用于在原数组基础上,对数据进行操作,将操作的结果返回成一个新的数组

下列代码就是map方法的手写

function map(arr,mapCallback){

      //if判断三种情况:传入的arr是否为数组,数组长度是否为0,第二个参数是否为function引用类型

      if(!Array.isArray(arr) || !arr.length || typeof mapCallback !== "function"return []

      else{

        //results是用户在调用map方法后返回的新数组

        var result = []

        for(var i = 0;i<arr.length;i++){

          //push进去的元素必须是经过mapCallback处理过后的元素

          result.push(mapCallback(arr[i]))

        }

        return result

      }

    }

//以下就是模拟使用map函数的过程


var res = map(arr,(item)=>{

      return item*3

})

//重点就是理解mapCallback函数的调用形式和返回出来的内容

console.log(res)