js把多维数组转换成一维数组的方法

方法一:apply结合concat拉平数组es6


let arr = [1,[2,3],4,[5,6]];
console.log( [].concat.apply( [], arr ) )    //[1,2,3,4,5,6]复制代码

上面的方法是使用apply结合concat,缺点是只能将二维转一维,多维数组就有问题了
数组

let arr = [1,[2,[3,4]],5,6]
console.log( [].concat.apply( [], arr ))    //[1,2,[3,4],5,6]复制代码

由上面的例子能够看出,改方法对三维数组的转换时失败的;bash

方法二:使用es6的flat()方法app

let arr = [1,[2,3],4,[5,6]];
console.log( arr.flat() )    //[1,2,3,4,5,6]复制代码

flat()默认是拉平一层,可是要想拉平多层且咱们不知道该数组的是几维数组时,咱们能够用Infinity做为参数,能够实现多维数组转换为一维数组ui

let arr = [1,[2,[3,4]],5,6]
console.log( arr.flat(Infinity) )    //[1,2,3,4,5,6]复制代码

可是要注意,由于flat()方法为es6的方法,在平时写代码时要注意有些手机对于es6的代码时不支持的,须要编译的,切忌踩这个坑。spa

相关文章
相关标签/搜索