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

一. 数组扁平化

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

形同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)
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //什么是数组扁平化 //将嵌套多层的数组,转为一层数组叫做数组扁平化 vararr=[1,[2,[3]]] //...
    流星绝尘阅读 217评论 0 0
  • JavaScript数组方法持续更新 作为 js 的重要一员,一定要好好了解一番,若有理解不到之处,还望不吝指教。...
    陈年小萌新阅读 177评论 0 0
  • http://www.conardli.top/docs/JavaScript/%E6%95%B0%E7%BB%8...
    Time_Notes阅读 183评论 0 0
  • **数组的概念及其定义方式** - 数组:有序的值的集合 ``` /** * 定义数组 */ defineArra...
    clp简阅读 210评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,588评论 16 22