• 二维数组转化为普通数组


    在处理多数组组合时,可能会经常要拼接成一个数组,今天我们一起聊聊数组的转变

    二维(甚至以上)变一维数组

    我常用的是第三种 apply 方法

    1、用es5的reduce和concat组合

    var list = [
      [111,222,3333,444],
      [555,666,777],
      [888],
      [999,1213]
    ]
    var lists = list.reduce((a,b) => a.concat(b))
    console.log(lists)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    2、用ES6的flat扁平处理

    var list = [
      [111,222,3333,444],
      [555,666,777],
      [888],
      [999,1213]
    ]
    var lists = list.flat()
    console.log(lists)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    3、用apply实现

    var list = [
      [111,222,3333,444],
      [555,666,777],
      [888],
      [999,1213]
    ]
    var lists = [].concat.apply([],list)
    console.log(lists)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    4、用call实现

    var list = [
      [111,222,3333,444],
      [555,666,777],
      [888],
      [999,1213]
    ]
    var lists = [].concat.call([],...list)
    console.log(lists)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    5、用递归实现多维数组转化为一维数组

    var list = [
    	[111,222,3333,444],
    	[ 555, 666, 777, [123] ],
    	[ 888 ], 
    	[ 999, 1212 ]
    ]
    function flatten(arr) {
    	return [].concat(...arr.map(x=>Array.isArray(x) ? flatten(x) : x))
    }
    var lists = flatten(list)
    console.log(lists)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    6、针对于简单的多维数组的转化

    var list = [
      [111,222,3333,444],
      [555,666,777,[123]],
      [888],
      [999,1212]
    ]
    var lists = (list + '').split(',')
    console.log(lists.map(Number))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    // let oneArr = values?.map((el) => {
    // return el.getData.map((item) => {
    // return {
    // reportId: item.id,
    // reportQty: item.editReportQty
    // };
    // });
    // });
    // var params = [].concat.apply([], oneArr);
    // console.log(params);

  • 相关阅读:
    virtualbox安装openEuler-方案二
    2.PHP变量、输出、EOF、条件语句
    一文极速理解深度学习
    人体神经元与胶质关系图,神经元和神经胶质关系
    Spring之日志
    Flex布局实战详解
    C++的命名空间、缺省参数、函数重载 及引用
    分享一下 iOS 发布/测试证书 申请过程
    「学习笔记」Garsia-Wachs 算法
    Linux(Centos7版本)安装Git
  • 原文地址:https://blog.csdn.net/lzfengquan/article/details/127731577