Array.prototype.map(callback,thisArg)
返回一个由回调函数的返回值组成的新数组。复制代码
let arr=[1,2,3,4,5];let arr_new=arr.map((item)=>{ return item*item;})//arr_new=[1,4,9,16,25],arr=[1,2,3,4,5]复制代码
- callback:自动传入三个参数
- 第一个:数组元素
- 第二个:元素索引
- 第三个:数组本身
- thisArg:如果有值,则每次
callback
函数被调用的时候,this
都会指向thisArg
参数上的这个对象。如果省略或赋值为null
、undefined
,则this
指向全局对象。
Array.prototype.flatMap(callBack,thisArg)
首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。与`map`和深度值为1的`flat`几乎相同复制代码
let arr=[1,2,3,[4]]arr.flatMap((item)=>{ return item*item});//[1,4,9,16]复制代码
- Array.prototype.flat(depth)
flat()方法会递归到指定深度将所有的子数组拼接成为一个新的数组 参数:depth(可选),指定潜逃数组中的结构深度,默认值为1
var arr=[1,[2,[3]]]var arr2=arr.flat(2)//[1,2,3]复制代码
Array.prototype.reduce(callback,initiaValue)
对数组中的每个元素(从左向右)执行一个`callback`函数,将其结果汇总返回单个返回值复制代码
- 回调函数(callback)接收4个参数
- total 必须,初始值,或者计算结束后的返回值
- item 必须。当前元素
- index 可选。当前元素的索引
- arr 可选。当前元素所属的数组对象
- initiaValue 可选,传递给函数的初始值
var arr=[1,2,3]let num=arr.reduce((total,item)=>{ return total+item});//6复制代码
参考: