//数组扁平化就是将 [1, [2, [3]]] 这种多层的数组拍平成一层 [1, 2, 3]。
// 使用 Array.prototype.flat 可以直接将多层数组拍平成一层
const arr=[1,[2,3,[4,5]]].flat(2)
console.log(arr)
const arr1=[1,[2,[2,3],2,[4,5]]]
//es5实现:递归
function flatten(arr) {
var result = [];
for (var i = 0, len = arr.length; i < len; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]))
} else {
result.push(arr[i])
}
}
return result;
}
console.log(flatten(arr1))
//es6实现
function flatten1(arr){
while(arr.some(item=>Array.isArray(item))){
arr=[].concat(...arr)
}
return arr
}
console.log(flatten1(arr1))
console