开发者社区> 问答> 正文

使用迭代的方式实现 flatten 函数 #前端面试

使用迭代的方式实现 flatten 函数。

展开
收起
Bill 2020-05-23 13:52:05 1906 0
1 条回答
写回答
取消 提交回答
  • 领取2折优惠劵,有几率免单哦!http://www.weilai.info/tool/326.html

    迭代的实现:

    let arr = [1, 2, [3, 4, 5, [6, 7], 8], 9, 10, [11, [12, 13]]]
    
    const flatten = function (arr) {
        while (arr.some(item => Array.isArray(item))) {
            arr = [].concat(...arr)
        }
        return arr
    }
    
    console.log(flatten(arr))
    
    

    image.png

    递归的实现(ES6简写):

    const flatten = array => array.reduce((acc, cur) => (Array.isArray(cur) ? [...acc, ...flatten(cur)] : [...acc, cur]), [])
    
    2020-05-24 11:47:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Vue.js 在前端服务化上的探索与实践 立即下载
阿里文娱大前端技术实践 立即下载
前端代码是怎样智能生成的 立即下载