前言
学习数组方法map的使用
一、Array.prototype.map()是什么?
定义
map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
描述
map 方法会给原数组中的每个元素都按顺序调用一次 callbackFn 函数。callbackFn 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。
二、语法
1.参数
- callbackFn
生成新数组元素的函数,使用三个参数: - currentValue
callbackFn 数组中正在处理的当前元素。 - index
callbackFn 数组中正在处理的当前元素的索引。 - thisArg 可选
执行 callbackFn 函数时被用作 this 的值。 - 返回值
一个新数组,每个元素都是回调函数的返回值。
// 箭头函数
map((element) => { /* … */ })
map((element, index) => { /* … */ })
map((element, index, array) => { /* … */ })
// 回调函数
map(callbackFn)
map(callbackFn, thisArg)
// 内联回调函数
map(function(element) { /* … */ })
map(function(element, index) { /* … */ })
map(function(element, index, array){ /* … */ })
map(function(element, index, array) { /* … */ }, thisArg)
- 注意事项:
- callbackFn 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。
- 如果 thisArg 参数提供给 map,则会被用作回调函数的 this 值。否则 undefined 会被用作回调函数的 this 值。this 的值最终相对于 callbackFn 函数的可观察性是依据确定函数绑定的 this 的常见规则决定的。
- map 不修改调用它的原数组本身(当然可以在 callbackFn 执行时改变原数组)
2.示例
const arr = [2,3,4]
arr.map(item => item * 2)
//[4,6,8]
---