JavaScript之数组

164 阅读1分钟

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参数上的这个对象。如果省略或赋值为nullundefined,则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

参考:MDN