const arr = [1, [2, 3], [4, 5, 6], 7, [8, 9]];
// 方法1 flat()
const res1 = arr.flat(Infinity);
// 方法2 利用正则
const res2 = JSON.stringify(arr).replace(/[|]/g, "").split(",");
// 方法3 正则改良
// 方法4 利用reduce
const flatten = (arr) => {
return arr.reduce((pre, cur) => {
return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
}, []);
};
// 方法5 函数递归
const res5 = [];
const fn = (arr) => {
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
fn(arr[i]);
} else {
res5.push(arr[i]);
}
}
};
fn(arr);