作用:
它会把调用这个方法的数组(arr)中的每一个元素逐个作为参数传递给你所指定的回调函数(callback)中,并且将得到的结果按顺序逐个的放在一个数组中作为返回值返回 (因此不会改变原数组的值)
语法:
var arr = arr.map(function callback(currentValue, index, array) {
// 具体的代码
}[, thisArg])
参数:
- currentValue : 当前值,即本次循环中从数组里传递给函数中的参数
- index:[可选参数] 当前值在调用这个方法的数组中对应对的索引值
- array:[可选参数] 原数组,即调用这个方法的数组
- 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方法时经历了以下过程:
- 将arr数组中的第一个元素作为参数传递给getSquare函数
- 执行getSquare函数,函数执行 ----> 返回 1 * 1 的结果
- 将arr数组中的第二个元素作为参数传递给getSquare函数
- 执行getSquare函数,函数执行 ----> 返回 2 * 2 的结果
- ....以此类推,直至将数组中的每一个元素都传递给了getSquare函数,然后将得到的结果按顺序放入一个新数组中并返回,因此最终的到的结果为新数组[1, 4, 9, 16, 25]