数组扁平化是指将一个多维数组变为一个一维数组
const arr = [1,[2,[3,[4,5]]]]
// =>[1,2,3,4,5]
1.使用 flat()
const arr1 = arr.flat(Infinity)
2.利用正则
const arr2 = JSON.stringify(arr).replace(/\[|\]/g,'').split(',')
不过,数据类型都会变为字符串
3.正则的改良版本
const arr3 = JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g,'') + ']')
4.使用 reduce
const flatten = arr => {
return arr.reduce((pre,cur) => {
return pre.concat(Array.isArray(cur) ? flatten(cur) : cur)
}, [])
}
const arr4 =flatten(arr)
5.函数递归
const arr5 = []
const fn = arr => {
for ( let i = 0; i < arr.length; i++){
if(Array.isArray(arr[i])){
fn(arr[i])
}else{
arr5.push(arr[i])
}
}
}