数组新特性flat()和flatMap()的使用,可解决数组降维!

1,062 阅读1分钟

数组新特性flat()和flatMap()的使用,可解决数组降维!

话不多说!!先看flat()

let arr = [1,[2,[3,[4,[5,6,[7,8,9]]]]]]

let newarr = arr.flat(Infinity)

console.log(newarr)

输出[1,2,3,4,5,6,7,8,9]

为啥会输出这样的结果呢??

这就是flat()得作用!flat(Infinity)中Infinity的作用就是深度降维到最后!
Infinity可以换成1,2,3等数字,表示降维到第几层!!

再看flatMap()

let arr2 = [1,2,3,4,5,6]

let newarr2 = arr2.flatMap((elem,i,arr)=>{

  return [[elem*i]]
})

console.log(newarr2)

输出[ [ 0 ], [ 2 ], [ 6 ], [ 12 ], [ 20 ], [ 30 ] ]

只能展开一层[]