SOURCE

function myFlat(array,dep){
    let result = [];
    let fn = function(arr) {
         for(let i = 0; i < arr.length; i++){
            let item = arr[i];
         if (Array.isArray(arr[i])){
            fn(item); 
         } else {
          result.push(item);
         }
    }
  }
  fn(array);
  return result;
}




//  return dep > 0
//     ? arr.reduce((acc,cur)=>{
//         if(Array.isArray(cur)){
//             return [...acc,...myFlat(cur,dep - 1)]
//         }
//         return [...acc,cur]
//     },[])
//     : arr



    // let count =0;
    // while (arr.some(Array.isArray)) {
    //  if(count ==dep) break;
    //  console.log(arr.some(Array.isArray))
    //  arr = [].concat(...arr);
    //  count++;  
    // }
    // return arr;
let arr1 = [1,2,[3,4,5,[6,7]]];
console.log(myFlat(arr1,1),arr1);
console 命令行工具 X clear

                    
>
console