Array.prototype.flat
首先看MDN对他的解释:
也就是说遍历出所有子数组然后合并成一个,也就是数组降维
/**
* flat(降维的维度) 参数就是要降维几层,不传默认就是1,也就是说会少嵌套一层,如果传入2,下面这个数组就直接拍平了
*/
const arr = [8, [5, 9, 4], 1, 3, [7, 5, 10, [3, 4, 6, 2]], 4, 3, 2, 4]
console.log(arr.flat()) // [ 8, 5, 9, 4, 1, 3, 7, 5, 10, [ 3, 4, 6, 2 ], 4, 3, 2, 4 ]
// 如果嵌套的很深,直接参数传入无穷大,那么不管嵌套的多深的数组 直接给它拍平
console.log(arr.flat(Infinity)) // [ 8, 5, 9, 4, 1, 3, 7, 5, 10, 3, 4, 6, 2, 4, 3, 2, 4 ]