数组扁平化的五种处理方法

一. 数组扁平化

数组的 扁平化就是将一个二维或者多维的数组进行处理成一个一维的数组

形同var arr = [1,2,3,[4,5,6,[7,8,9]]]

  1. reduce

    var arr = [1,2,3,[4,5,6,[7,8,9]]]
    function Fn ( arr ){
            let newArr = arr.reduce((res,item)=>{
                return [].concat(res,item)
            }) 
            const flag = newArr.some(item=>Array.isArray(item))
            if(flag){
                return Fn(newArr)
            }else{
                return newArr
            }
        }
        console.log(Fn(arr))
    
  1. toString&split

        function flattening(arr) {
        let arr1 = arr.toString().split(",");
        //此时得到的每一项的字符数组
        //接着转数字
        let arr2 = arr1.map(item => {
            return item * 1;
        })
        return arr2;
    }
    console.log(flattening(arr))
    
  1. join&split

        function flattening(arr) {
        let arr1 = arr.join().split(",");
        //此时得到的每一项的字符数组
        //接着转数字
        let arr2 = arr1.map(item => {
            return item * 1;
        })
        return arr2;
    }
    
  1. 递归

        function fn(arr) {
            var res = []
            arr.map(item => {
            if(Array.isArray(item)) {
                res = res.concat(fn(item))
            }else{
                res.push(item)
            }
        })
            return res
    }
    
  1. 扩展运算符

     var arr=[1,[2,[3,4]],5,6] 
        while(arr.some(item =>Array.isArray(item))){    
            arr = [].concat(...arr)
        }
      console.log(arr)
    

你可能感兴趣的:(数组扁平化的五种处理方法)