题解 | #数组扁平化#

查找重复元素

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)
    }, [])
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务