博客
关于我
js中多维数组转一维
阅读量:395 次
发布时间:2019-03-05

本文共 1236 字,大约阅读时间需要 4 分钟。

 

  法一:使用数组map()方法,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

let arr = [1,[2,[[3,4],5],6]];function oneDimensionalArray (arr) {        let arr1 = (arr + '').split(','); // 将数组转字符串后再以逗号分隔转为数组        let arr2 = arr1.map(function(x){            return Number(x);        });        return arr2;}console.log(oneDimensionalArray(arr));

  法二:使用apply结合concat,缺点是只能将二维转一维,多维数组就不对了。

let arr = [1,[2,3],[4,5]];console.log([].concat.apply([],arr));

  法三:将数组转为字符串再转为数组,缺点是数组中每项成字符串了

let arr = [1,[2,[[3,4],5],6]];let arr2 = arr.join(',').split(',');console.log(arr2);//["1", "2", "3", "4", "5", "6"] //或
let c=[1,3,4,5,[6,[0,1,5],9],[2,5,[1,5]],[5]]; console.log(c.toString().split(','))

  法四:递归

let arr = [1, [2, [[3, 4], 5], 6]];let newArr = [];function oneDimensionalArray(arr) {    for (let i = 0; i < arr.length; i++) {        if (Array.isArray(arr[i])) {            oneDimensionalArray(arr[i]);        } else {            newArr.push(arr[i]);        }    }}oneDimensionalArray(arr);console.log(newArr); //[1, 2, 3, 4, 5, 6]

  法五:reduce+递归

use strict';    let arr = [1,[2,[[3,4],5],6]];    const flatten = arr => arr.reduce(            (acc,val) => acc.concat(Array.isArray(val)? flatten(val):val),[]    )    console.log(flatten(arr));//[1, 2, 3, 4, 5, 6]

转载地址:http://tnqzz.baihongyu.com/

你可能感兴趣的文章
《你当像鸟飞往你的山》总结
查看>>
《我是猫》总结
查看>>
《抗糖化书》总结
查看>>
apache虚拟主机配置
查看>>
光盘作为yum源
查看>>
PHP 正则表达式资料
查看>>
PHP官方网站及PHP手册
查看>>
mcrypt加密以及解密过程
查看>>
mysql连续聚合
查看>>
go等待N个线程完成操作总结
查看>>
消息队列 RocketMQ 并发量十万级
查看>>
ReactJs入门教程-精华版
查看>>
乐观锁悲观锁应用
查看>>
Window环境下安装Redis 并 自启动Redis 及 Redis Desktop Manager
查看>>
简单说说TCP三次握手、四次挥手机制
查看>>
.net Core 使用IHttpClientFactory请求
查看>>
多线程之旅(准备阶段)
查看>>
Python 之网络式编程
查看>>
MySql5.5安装步骤及MySql_Front视图配置
查看>>
mybatis绑定错误-- Invalid bound statement (not found)
查看>>