Map方法是常用到的对数组元素进行修改的重要函数
map定义和方法
map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。
map()方法按照原始数组元素顺序依次处理元素。
注意:
map不会对空数组进行检测
map不会改变原始数组
语法:
array.map(function(currentValue, index, arr), thisIndex)
参数说明:
function(currentValue, index, arr):必须。为一个函数,数组中的每个元素都会执行这个函数。其中函数参数:
currentValue:必须。表述当前元素的的值(item)
index:可选。当前元素的索引也就是第几个数组元素。
arr:可选。当前元素属于的数组对象
thisValue:可选。对象作为该执行回调时使用,传递给函数,用作”this”的值
示例1:
将数组里的int类型的数据换成字符串类型
1 | var arr = [1,2,3,4,5,6,7,8,9,10]; |
示例2:
对原数组元素进行平方后再赋值给新的数组
1 | var arr = [1,2,3,4,5,6,7,8,9,10]; |
注意事项:
当map函数内部使用箭头函数的时候,无论是否带有thisValue,函数内部的this都指向全局window
1 | var arr = [1,2,3,4,5,6,7,8,9,10]; |
当map函数内部使用function形式的时候,如果带有thisValue,函数内部的this指向thisValue
1 | var arr = [1,2,3,4,5,6,7,8,9,10]; |
map 底层封装
1. 准备一个新的数组
2. 遍历原始数组, 分别执行函数
3. 把每依次函数执行候得返回值放在新数组里面
4. 把新数组当作 map 得返回值给出来
1 | var arr = [10, 100, 1000] |