关于递归的使用

2018-05-10  本文已影响0人  湾里晴空

递归算法在拉平数组中有很多中用法,下面介绍两种

 function flatten(arr){
        arr2 = []
        function _flat(arr){
        arr.forEach(val => {
            if(Array.isArray(val)){_flat(val)}
            else( arr2.push(val))
            
        });
        }
        _flat(arr)
        return arr2
    }
        var arr = [1, [2], [3, [[4]]]]
        var arr2 = flatten(arr)
        console.log(arr2)

方法二

 function flattern2(arr){
                return arr.reduce(function(initArr,currentArr){
                return initArr.concat(Array.isArray(currentArr)?flattern2(currentArr):currentArr)
                },[])
            }
                   var arr = [1, [2], [3, [[4]]]]
            var arr2 = flattern2(arr)
            console.log(arr2)

方法十分巧妙,使用拼接语句,其中reduce主要是起一个遍历的作用。

上一篇 下一篇

猜你喜欢

热点阅读