题解 | #数组扁平化#

查找重复元素

http://www.nowcoder.com/practice/871a468deecf453589ea261835d6b78b

第一种方法

使用递归

  • 建立一个空数组,用于存放所有的元素
  • 对参数数组进行遍历,判断其是否为number类型
  • 如果为number类型则直接加在空数组中,不为numer类型则直接进行递归运算
    const _flatten = arr => {
            // 补全代码
            let minearr = []

            function aaa(arr) {
                for (let i = 0; i < arr.length; i++) {
                    if (typeof arr[i] == 'number') {
                        console.log(arr[i]);
                        minearr.push(arr[i])
                    } else {
                        aaa(arr[i])
                    }
                }
            }
            aaa(arr)
            return minearr;
        }

第二种方法

使用reduce配合递归实现

reduce是一个累加器,result为初始值或者计算之后的值,item为当前值

const _flatten = arr => {
    return arr.reduce((result, item) => {
        return result.concat(Array.isArray(item) ? _flatten(item) : item)
    }, [])
}
全部评论

相关推荐

点赞 评论 收藏
分享
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务