数据扁平化实现方法

第一种方法

        var arr = [1, 2, 3, [1, 2, 3, [4]]];

        function flatten(arr) {
            while (arr.some(item => Array.isArray(item))) {
                arr = [].concat(...arr)
            }
            return arr
        }    

第二种方法

Array.prototype.flatten = function(){
            var result = []
            this.forEach(item =>{
                Array.isArray(item) ? result = result.concat(item.flatten()):result.push(item)
            })
            return result
        }

第三种方法

function flatten(arr){
            arr = arr || [];
            return arr.reduce(function(prev,next){
                return Array.isArray(next) ? prev.concat(flatten(next)): prev.concat(next)
            },[])
        }

第四种方法

  arr.flat(Infinity)简单粗暴

猜你喜欢

转载自www.cnblogs.com/wangyisu/p/13206464.html