前端理解数组map方法

function map(arr,callBack){
  // 首先判断arr是否是数组,callBack是否是function,若不是则直接返回空数组
  if(!Array.isArray(arr) || !arr.length || typeof callBack != 'function') return []
  else {
    var result = []
    // 遍历数组arr
    for(let i=0,len =arr.length;i<len;i++)
    {
        // 将当前第i次遍历的arr[i],i,以及数组arr作为形参传递给回调函数,并存入空数组result
        result.push(callBack(arr[i],i,arr))
    }
    //然后将数组result返回
    return result
  }
}
var arr985 = [9, 8, 5]
// 手写map用例
map(arr985,(item,index,arr)=>{
    console.log(item)
    console.log(index)
    console.log(arr)
    console.log(item * 2)
    return item*10
})
//  9
//  0
//  [9, 8, 5]
//  18
//  
//  8
//  1
//  [9, 8, 5]
//  16
//  
//  5
//  2
//  [9, 8, 5]
//  10
//  
//  [90, 80, 50]

// 数组map用例
arr985.map((item,index,arr)=>{
    console.log(item)
    console.log(index)
    console.log(arr)
    console.log(item * 2)
    return item*10;
})
//  9
//  0
//  [9, 8, 5]
//  18
//  
//  8
//  1
//  [9, 8, 5]
//  16
//  
//  5
//  2
//  [9, 8, 5]
//  10
//  
//  [90, 80, 50]

hustersong
17 声望0 粉丝