手写数组flat【手写题】

60 阅读1分钟
/** 
   * 将多维数组转换为一维数组 
   * @param {Array} arr - 需要被转换的多维数组 
   * @param {number} deep - 数组转换的深度,默认为1 
   * @returns {Array} - 转换后的一维数组 
 */ 
 const flat = function (arr, deep = 1) { 
     let result = [] 
     arr.forEach(item => { // 当前项为数组且转换深度未达到0时,递归调用flat函数 
         if (Array.isArray(item) && deep > 0) { 
             result = result.concat(flat(item, deep - 1)) 
         } else { 
           result.push(item) 
         } 
       })
       return result 
 }