编辑代码

const arr = [1, [2, [3, [4, 5]]], 6];
const str = JSON.stringify(arr);
// 方法一
const res1 = arr.flat(Infinity);
// 方法二:但数据类型都会变为字符串
const res2 = str.replace(/\[|\]/g, '').split(',');
// 方法三
const res3 = JSON.parse('[' + str.replace(/\[|\]/g, '') + ']');
// 方法四
function flatten(arr) {
    return arr.reduce((pre, cur) => {
        return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
    }, [])
}
const res4 = flatten(arr);
// 方法五
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);
// 方法六
let ary = [1, [2, [3, [4, 5]]], 6];
while (ary.some(Array.isArray)) {
    ary = [].concat(...ary);
}
console.log(ary, 'res5');