1. 利用递归实现扁平化
const arr = [1, [2, 3], [4, 5, [6, 7]]];
const fun = (data, newArr = []) => {
if (!data) {
return []
}
data?.forEach((item) => {
if (Array.isArray(item)) {
fun(item, newArr);
return;
}
newArr.push(item)
})
return newArr;
}
console.log('newArr', fun(arr));
2. 利用 reduce 方法进行扁平化
const fn = (arr) => {
return arr.reduce((pre, current) => {
return pre.concat(Array.isArray(current) ? fn(current) : current)
}, [])
}
console.log('ne', fn(arr));
3. 利用 flat 方法进行扁平化
const arr = [1, [2, 3], [4, 5, [6, 7]]];
console.log('new',arr.flat(Infinity));