作用:

它会把调用这个方法的数组(arr)中的每一个元素逐个作为参数传递给你所指定的回调函数(callback)中,并且将得到的结果按顺序逐个的放在一个数组中作为返回值返回 (因此不会改变原数组的值)

语法:

var arr = arr.map(function callback(currentValue, index, array) {
    // 具体的代码
}[, thisArg])

参数:

  1. currentValue : 当前值,即本次循环中从数组里传递给函数中的参数
  2. index:[可选参数] 当前值在调用这个方法的数组中对应对的索引值
  3. array:[可选参数] 原数组,即调用这个方法的数组
  4. thisArg:[可选参数] 执行 callback 函数时使用的this值。

详细参见MDN:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map

以上内容参照MDN并加以个人理解


示例代码:

var arr = [1,2,3,4,5];  // 初始化一个数组

arr.map(function getSquare(currentValue){
    return currentValue * currentValue;
})

// 返回结果: (5) [1, 4, 9, 16, 25]

当数组arr调用map方法时经历了以下过程:

  1. 将arr数组中的第一个元素作为参数传递给getSquare函数
  2. 执行getSquare函数,函数执行 ----> 返回 1 * 1 的结果
  3. 将arr数组中的第二个元素作为参数传递给getSquare函数
  4. 执行getSquare函数,函数执行 ----> 返回 2 * 2 的结果
  5. ....以此类推,直至将数组中的每一个元素都传递给了getSquare函数,然后将得到的结果按顺序放入一个新数组中并返回,因此最终的到的结果为新数组[1, 4, 9, 16, 25]
02-13 20:41